Je me mets au C

quote="Anoyzthen"
pas bon parce que j’utilise pas make ?

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 ?

Bon, je vais me coucher… A demain.

Je passerai demain matin pour voir ce que vous pensez de ça.

C’est si dur, le C ?

C’est comme ça que je fais aussi je comprends pas mattotop ?

Lorsque je fais make y’a rien à faire qu’il me dit :unamused:[/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.

Ok, ça je pense avoir compris alors, et je l’ai mis dans les scripts exo, le chemin vers l’interpreteur python

:stuck_out_tongue:

bonne nuit wavesound :wink:

nooon c’est pas dur ! :laughing:
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

nooon c’est pas dur ! :laughing: [/quote]

j’ai entendu dire que les pointeurs c’était.

Je n’ai pas lu tt le fil mais si on n’en a pas déjà parlé, voilà un site clair pour apprendre C, C++ aux débutants :
ICI

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+ :smt015

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 ? :arrow_right:

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 :arrow_right:

Bonjour, merci je vais aller apprendre le C ! :laughing:

Arf, je dois choisir un IDE d’après le tutoriel dont le lien a été donné plus haut (C/C++).

J’aurai bien aimé prendre Code::Blocks, mais seul un RPM est dispo pour Linux… Et Debian ne connait pas ça, non ?

:confused:

Entre Anjuta et Kdevelopp tu devrais t’en sortir …

Je préférerai apprendre sans IDE, mais malheureusement le tutoriel les utilise.

games-creators.org/wiki/Code::Blocks

Ah, merci.

Mais je préfère faire tout cela à la main, avec le bon vieux GCC.

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="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:~$