perso je lance tous mes scripts avec la commande python. comme sous windows.[/quote]C’est pour ça que je dis que c’est pas propre: dans l’absolu, l’utilisateur de ton script n’a pas besoin de savoir s’il s’interprète avec python, sh, ou perl.
Donc, indépendament de make, c’est interessant de mettre en tête de ton script le shell escape #!/chemin/vers/l’interpreteur (ce que ne sait pas utiliser windows) qui permet de préciser avec quoi ça s’interprète, pour que ton utilisateur puisse lancer le script en le nommant juste (sans préciser que ça s’ouvre avec python).
Ce que vous êtes touchy, les gars ! Ce serait moi qui fous une ambiance de nerfs en ce moment ?
C’est comme ça que je fais aussi je comprends pas mattotop ?
Lorsque je fais make y’a rien à faire qu’il me dit [/quote]Non, ce que je dis, c’est que si vous avez un fichier fichier.truc ou le suffixe .truc est reconnu comme un suffixe que make sait gèrer, make sait fabriquer le fichier “fichier” qui est en chmod +x et qui n’est dans le cas d’un script qu’une copie de fichier.truc avec le flag +x.
Pour la partie make, c’est vraiment gadget, mais pour le shell escape #!, c’est important AMA de comprendre à quoi il sert.
ah non sur ce coup là je voulais juste savoir le pourquoi fallait faire selon ta directive, autrement. je voyais pas la raison… maintenant il est vrai que j’ai fait que des scripts d’administration pour mon root… mais pourquoi pas faire les trucs proprements à la linux. c’est noté.
mais bon si j’ai l’air énervé, je ferais en sorte de pas avoir l’air.
nooon c’est pas dur !
personnellement je trouve que c’est très formateur d’apprendre le C, après les autres langages coulent (presque) de source
d’un autre coté je connais pas python, mais j’ai jeté un oeil et ça l’air intéressant
après, comme dit, tous dépend de ce que tu veux programmer
Les pointeurs, ça demande de connaître un minimum le fonctionnement de l’allocation des données en mémoire, tu dois être conscient que tu manipules des adresses mémoires de variables
ça peut être déroutant au début mais on s’y habitue
[quote=“Vishnou”]Les pointeurs, ça demande de connaître un minimum le fonctionnement de l’allocation des données en mémoire, tu dois être conscient que tu manipules des adresses mémoires de variables
ça peut être déroutant au début mais on s’y habitue[/quote]
pour faire simple le pointeur est une variable dont la valeur pointe vers une autre variable. la valeur que contient le pointeur est stocké en mémoire ainsi que sont adresse.
explication: tu imagines un ruban divisé en cases identiques.(ça c’est la mémoire). tu déclares une variable pointé . Elle ce stocke en mémoire.
Mais pour pouvoir l’utiliser il faut 2 autres informations la première le lieu ou ce trouve la variable et la deuxième ça valeur .
un exemple
int x; /* la variable x est un entier */
x=4; /*x a la valeur 4 */
je stock la variable x en mémoire sont adresse en mémoire est 0x1AF4 et à cette adresse j’ai la valeur de ma variable qui est 4
si ce n’est pas très claire quelqu’un me corrigera moi je vais me couché je n’arrive plus à réfléchir
il est + de 7h30 et j’ai fait nuit blanche!
un gros dodo de 10 heures.
A+
un pointeur, c’est comme une laisse à chien. Si on te dis “tiens prends le chien et va le promener”, en te tendant une laisse, tu prends la laisse, et tu va la promener avec un chien au bout. Si tu rentre, qu’on change le chien au bout de la laisse et qu’on te dit “tiens va retournes y” tu promènes peut être la même laisse, mais pas le même chien.
Euh… mais kskejdis, moi ?
Non, des pointeurs c’est comme une liste de cadeaux de noel de famille nombreuses. Mettons qu’ils soient planqués à un endroit, et que toi tu sais quel cadeau va à qui mais que ce n’est pas toi qui va les distribuer et que tu doive dire ce qui va à qui. Tu peux faire des tas pour chaque gamin, et dire, “ce tas là tu le donneras à untel, etc”, ou tu peux laisser les paquets en tas, et filer une liste avec “cadeaux pour untel: gros paquet bleu, petit rouge avec un fil doré, etc”, et filer la liste avec les paquets en tas. Comme ça, si on veut rerépartir les paquets, il suffit de modifier la liste plutot que de déplacer physiquement les cadeaux de tas en tas.
Non ? l’image n’est pas belle ?
Bon OK
quote="wavesound"
J’ai pour l’instant réussi à afficher à l’écran, après compilation (gcc .c -o ) :
Debian GNU/Linux
Sid
Whaouuu ! Mine de rien, j’en suis quand même bien content.[/quote]Bien, mais tu n’as pas lu ce que je t’ai dit à propos de make.
Au lieu de faire appel toi même à gcc, tu te mets dans le rep de source.c, et tu fais make source, et il va te produire un fichier executable source en compilant lui même avec gcc et les flags qui vont bien et auquels toi débutant tu ne penses pas.
make est important à connaitre pour tout projet d’un peu d’envergure (plus d’un fichier source pour le projet).
Bon, je me suis fait un petit programme, le code :
[code]int main(int argc, char *argv[])
{
long vies = 5; // 5 vies au début
printf(“Vous avez %ld vies\n”, vies);
printf("**** ARGH ****\n"); // Un ennemi lui fait perdre une vie
vies = 4; // Résultat : une vie en moins
printf(“Plus que %ld vies !\n\n”, vies);
return 0;
}[/code]
Mais lorsque j’essaye de compiler :
wavesound@Whale:~$ gcc /home/wavesound/Fichiers\ temporaires/gnutoto.c -o /home/wavesound/Fichiers\ temporaires/gnutoto
/home/wavesound/Fichiers temporaires/gnutoto.c: In function ‘main’:
/home/wavesound/Fichiers temporaires/gnutoto.c:5: warning: incompatible implicit declaration of built-in function ‘printf’
wavesound@Whale:~$