# Je me mets au C

**URL:** <https://www.debian-fr.org/t/je-me-mets-au-c/8416>\
**Category:** Pause Café\
**Created:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416 "2016-02-20T16:06:38Z")\
**Posts on this page:** 20\
**Page:** 4

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/61 "2016-02-20T16:06:49Z")

</div>

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 ?

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/62 "2016-02-20T16:06:49Z")

</div>

Bon, je vais me coucher… A demain.

Je passerai demain matin pour voir ce que vous pensez de [ça](http://www.siteduzero.com/tuto-3-8-0-apprenez-a-programmer-en-c-c.html?sesid=1d33b9a4df1d116417ff670e5f888ff32d4b7931&sesmid=-302).

C’est si dur, le C ?

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/63 "2016-02-20T16:06:49Z")

</div>

> [@](#):
>
> [quote]je sais pas moi j’utilise la commande python de lameme facon que j’utilise la commande sh.

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.

---

<div class="post-metadata">

**Author:** ![Anoyzthen](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/c4cdca/32.png) [@Anoyzthen](https://www.debian-fr.org/u/Anoyzthen)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/64 "2016-02-20T16:06:49Z")

</div>

> [@](#):
>
> Ce que vous êtes touchy, les gars ! Ce serait moi qui fous une ambiance de nerfs en ce moment ?

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.

---

<div class="post-metadata">

**Author:** ![ymer](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/y/cdc98d/32.png) [@ymer](https://www.debian-fr.org/u/ymer)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/65 "2016-02-20T16:06:49Z")

</div>

> [@](#):
>
> Pour la partie make, c’est vraiment gadget, mais pour le shell escape #!, c’est important AMA de comprendre à quoi il sert.

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

😛

bonne nuit wavesound 😉

---

<div class="post-metadata">

**Author:** ![Vishnou](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/71e660/32.png) [@Vishnou](https://www.debian-fr.org/u/Vishnou)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/66 "2016-02-20T16:06:50Z")

</div>

> [@](#):
>
> C’est si dur, le C ?

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

---

<div class="post-metadata">

**Author:** ![CARNIBAL](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/c/a9adbd/32.png) [@CARNIBAL](https://www.debian-fr.org/u/CARNIBAL)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/67 "2016-02-20T16:06:50Z")

</div>

> [@](#):
>
> [quote]C’est si dur, le C ?

nooon c’est pas dur ! 😆 [/quote]

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

---

<div class="post-metadata">

**Author:** ![ricardo](https://www.debian-fr.org/user_avatar/www.debian-fr.org/ricardo/32/3864_2.png) [@ricardo](https://www.debian-fr.org/u/ricardo)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/68 "2016-02-20T16:06:50Z")

</div>

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](http://www.siteduzero.com/tuto-3-8-0-apprenez-a-programmer-en-c-c.html?sesid=811ad2fe66babc8a24e78b6e219183c2bd350acc&sesmid=-211)

---

<div class="post-metadata">

**Author:** ![Vishnou](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/71e660/32.png) [@Vishnou](https://www.debian-fr.org/u/Vishnou)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/69 "2016-02-20T16:06:50Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![rodmov](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/r/f6c823/32.png) [@rodmov](https://www.debian-fr.org/u/rodmov)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/70 "2016-02-20T16:06:52Z")

</div>

[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](https://www.debian-fr.org/uploads/default/original/1X/e87c0ae4397aede5439e13e017f4844aadca4f30.gif)

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/71 "2016-02-20T16:06:52Z")

</div>

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 ? ➡

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/72 "2016-02-20T16:06:52Z")

</div>

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 ➡

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/73 "2016-02-20T16:06:52Z")

</div>

Bonjour, merci je vais aller apprendre le C ! 😆

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/74 "2016-02-20T16:06:53Z")

</div>

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 ?

😕

---

<div class="post-metadata">

**Author:** ![debianhadic](https://www.debian-fr.org/user_avatar/www.debian-fr.org/debianhadic/32/3870_2.png) [@debianhadic](https://www.debian-fr.org/u/debianhadic)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/75 "2016-02-20T16:06:53Z")

</div>

Entre Anjuta et Kdevelopp tu devrais t’en sortir …

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/76 "2016-02-20T16:06:53Z")

</div>

Je préférerai apprendre sans IDE, mais malheureusement le tutoriel les [utilise](http://www.siteduzero.com/tuto-3-160-1-votre-premier-programme.html?sesid=e591b2ef9ff7ab415b5ee32bb5a5d1ab0348b8a9&sesmid=-288).

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/77 "2016-02-20T16:06:54Z")

</div>

[games-creators.org/wiki/Code::Blocks](http://www.games-creators.org/wiki/Code::Blocks)

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/78 "2016-02-20T16:06:54Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![mattotop](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mattotop/32/3942_2.png) [@mattotop](https://www.debian-fr.org/u/mattotop)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/79 "2016-02-20T16:06:54Z")

</div>

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).

---

<div class="post-metadata">

**Author:** ![wavesound](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/w/54ee81/32.png) [@wavesound](https://www.debian-fr.org/u/wavesound)\
**Post date:** [Février 20, 2016, 4:06 UTC](https://www.debian-fr.org/t/je-me-mets-au-c/8416/80 "2016-02-20T16:06:54Z")

</div>

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:~$
`

[Page précédente](https://www.debian-fr.org/t/je-me-mets-au-c/8416.md?page=3)

[Page suivante](https://www.debian-fr.org/t/je-me-mets-au-c/8416.md?page=5)
