# Gros débutant en programmation, problême por compiler (gcc)

**URL:** <https://www.debian-fr.org/t/gros-debutant-en-programmation-probleme-por-compiler-gcc/2387>\
**Category:** Programmation\
**Created:** [Février 20, 2016, 12:14 UTC](https://www.debian-fr.org/t/gros-debutant-en-programmation-probleme-por-compiler-gcc/2387 "2016-02-20T12:14:33Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![tonks](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/53a042/32.png) [@tonks](https://www.debian-fr.org/u/tonks)\
**Post date:** [Février 20, 2016, 12:14 UTC](https://www.debian-fr.org/t/gros-debutant-en-programmation-probleme-por-compiler-gcc/2387/1 "2016-02-20T12:14:33Z")

</div>

bonjour tout le monde,  
je débute tout juste en programmation et je n’arrive pas à compiler mon premier programme, (afficher “Bonjour” à l’écran, je pense que vous devez connaître 🙂 ).  
le code source du programme en question ( au cas ou je me suis trompé quelque part):

#include \<stdio.h\>

void main ()  
{  
puts (“bonjour”);  
getchar ();  
return;  
}

ensuite je tente de compiler avec gcc:

gcc -c /home/tonks/tryC/programme1.c

et ça me donne ceci:

:~$ gcc -c /home/tonks/tryC/programme1.c  
/home/tonks/tryC/programme1.c: Dans la fonction « main »:  
/home/tonks/tryC/programme1.c:4: attention : le type de retour de « main » n’est pas « int »  
/home/tonks/tryC/programme1.c:8:2: attention : pas de retour chariot à la fin du fichier

Voila. Si j’ai bien compris le tutorial que j’utilise, je devrais normalement obtenir un fichier objet, mais ce n’est pas le cas.  
Pourriez vous m’expliquer ce que tout cela veut dire, j’avoue que je suis “déja” largué, je n’arrive pas à savoir ou se trouve mon erreur.  
Je vous remercie d’avance, j’espere que je ne raconte pas de bêtises et désolé si la question s’avère être stupide, je débute.

---

<div class="post-metadata">

**Author:** ![Ashgenesis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/57b2e6/32.png) [@Ashgenesis](https://www.debian-fr.org/u/Ashgenesis)\
**Post date:** [Février 20, 2016, 12:14 UTC](https://www.debian-fr.org/t/gros-debutant-en-programmation-probleme-por-compiler-gcc/2387/2 "2016-02-20T12:14:33Z")

</div>

Bonsoir,  
Essaye d’utiliser la balise code pour poster tes codes c’est beaucoup plus lisible.

Ensuite tu peux aller voir sur ce site c’est plutot bien expliquer bon pas encore complet mais pour débuter c’est tres bien [mapage.noos.fr/emdel/](http://mapage.noos.fr/emdel/)

ensuite on arrive a ton prog  
je ne sais pas si c’est le post qui fait ca mais le #include \<stdio.h\>  
devrais plutot etre

```auto

```

Ensuite main est toujours du type int (voir le lien ci dessus pour plus d’explication) ce qui donne donc

`int main` et comme tu ne lui passe aucun parametre ca doit donc donner

```auto

```

Toujours retourner quelque chose en C donc la derniere instruction devrais etre `return 0;`  
Ce qui donne donc

[code]#include \<stdio.h\>

int main ()  
{  
puts (“bonjour”);  
getchar ();  
return 0;  
}  
[/code]et surtout ne pas oublier de passer une ligne à la fin du code sinon tu obtiendra le meme warning 🙂[quote]/home/tonks/tryC/programme1.c:8:2: attention : pas de retour chariot à la fin du fichier [/quote]  
Tu peux aussi tout compiler d’un coup `gcc tonfichier.c -o tonexecutable`Bon code 😉

---

<div class="post-metadata">

**Author:** ![Sivaslim](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/e19adc/32.png) [@Sivaslim](https://www.debian-fr.org/u/Sivaslim)\
**Post date:** [Février 20, 2016, 12:14 UTC](https://www.debian-fr.org/t/gros-debutant-en-programmation-probleme-por-compiler-gcc/2387/3 "2016-02-20T12:14:34Z")

</div>

je crois que certains compilateurs n’acceptent pas void main()  
je suis d’accord avec Ashgenesis int main et return 0 est la meilleur solution

---

<div class="post-metadata">

**Author:** ![system](https://www.debian-fr.org/uploads/default/original/2X/3/3e09e08dc9e209bfcd3ac95bd4c3576803f5aa80.png) [@system](https://www.debian-fr.org/u/system)\
**Post date:** [Février 20, 2016, 12:14 UTC](https://www.debian-fr.org/t/gros-debutant-en-programmation-probleme-por-compiler-gcc/2387/4 "2016-02-20T12:14:34Z")

</div>

"Le type retourné par main()

Bien que main() soit censé retourner un int, on voit quelquefois écrit

`void main (void)
{
}`

Qu’en est-il exactement ?

D’après la définition du langage C, dans un programme conforme, main() doit retourner int. D’ailleurs un compilateur comme Borland C 3.1 en mode ANSI refuse void main() (error). Dans les mêmes conditions, gcc qui émet un avertissement (warning).  
Historique

Dès l’apparition du langage C, une des formes canoniques de main() était

`main()
{
   return 0;
}`

l’autre étant la forme qui permet de récupérer les arguments de la ligne de commande.

Il faut bien comprendre qu’à cette époque, une fonction définie sans type de retour explicite, retournait un int (c’est toujours le cas en C90, mais plus en C99 où le type doit être explicite). Le mot clé ‘void’ n’existait pas.

Il n’y avait donc aucune raison d’utiliser une forme void main().

Ensuite, est venue la normalisation du langage C. (1989 ANSI, 1990 ISO). Dans le texte, les deux formes canoniques sont décrites :

```auto

```

et

```auto

```

Il est précisé en remarque (dans la partie non normative) qu’il existe d’autres formes sans autres précisions. Elles ne font donc pas partie de la norme, leur comportement est donc indéfini dans le cadre d’un programme respectueux de la norme (dit ‘strictement conforme’)."

Extrait de [mapage.noos.fr/emdel/notes.htm#typemain](http://mapage.noos.fr/emdel/notes.htm#typemain)  
Pour l’explication sur le `int main(void)` 🙂

---

<div class="post-metadata">

**Author:** ![Ashgenesis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/57b2e6/32.png) [@Ashgenesis](https://www.debian-fr.org/u/Ashgenesis)\
**Post date:** [Février 20, 2016, 12:14 UTC](https://www.debian-fr.org/t/gros-debutant-en-programmation-probleme-por-compiler-gcc/2387/5 "2016-02-20T12:14:34Z")

</div>

Tiens premiere fois que ca m’arrive de poster sans etre connecter 😆😆  
C’est moi l’inviter au dessus 🙂

---

<div class="post-metadata">

**Author:** ![Sivaslim](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/s/e19adc/32.png) [@Sivaslim](https://www.debian-fr.org/u/Sivaslim)\
**Post date:** [Février 20, 2016, 12:14 UTC](https://www.debian-fr.org/t/gros-debutant-en-programmation-probleme-por-compiler-gcc/2387/6 "2016-02-20T12:14:35Z")

</div>

T trop fort 😃

---

<div class="post-metadata">

**Author:** ![Ashgenesis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/57b2e6/32.png) [@Ashgenesis](https://www.debian-fr.org/u/Ashgenesis)\
**Post date:** [Février 20, 2016, 12:14 UTC](https://www.debian-fr.org/t/gros-debutant-en-programmation-probleme-por-compiler-gcc/2387/7 "2016-02-20T12:14:35Z")

</div>

1. 
  1. 
    1. 
      1. 
        1. 
          1.

---

<div class="post-metadata">

**Author:** ![Bluenote1](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/b/ad7895/32.png) [@Bluenote1](https://www.debian-fr.org/u/Bluenote1)\
**Post date:** [Février 20, 2016, 12:14 UTC](https://www.debian-fr.org/t/gros-debutant-en-programmation-probleme-por-compiler-gcc/2387/8 "2016-02-20T12:14:38Z")

</div>

Tu veux nous faire croire que toute cette science est de toi, mais ça ne prend pas ! C’était sûrement Kernighan ou Ritchie qui nous rendait visite. Ca s’est déjà vu…

On ne me la fait pas ! ![:mrgreen:](https://www.debian-fr.org/uploads/default/original/1X/cc83e9b583138e48ff45f96609046b06d06c7f9d.gif "Mr. Green")

---

<div class="post-metadata">

**Author:** ![Ashgenesis](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/a/57b2e6/32.png) [@Ashgenesis](https://www.debian-fr.org/u/Ashgenesis)\
**Post date:** [Février 20, 2016, 12:14 UTC](https://www.debian-fr.org/t/gros-debutant-en-programmation-probleme-por-compiler-gcc/2387/9 "2016-02-20T12:14:39Z")

</div>

> [@](#):
>
> Ensuite tu peux aller voir sur ce site c’est plutot bien expliquer bon pas encore complet mais pour débuter c’est tres bien [mapage.noos.fr/emdel/](http://mapage.noos.fr/emdel/)

suivi de [quote=“invité”]Extrait de [mapage.noos.fr/emdel/notes.htm#typemain](http://mapage.noos.fr/emdel/notes.htm#typemain)  
Pour l’explication sur le int main(void)  
[/quote]

Il faut bien tout lire 🙂  
Je n’ai jamais dit que c’etais de moi toute l’explication j’ai dit que c’etais moi qui avait poster l’explication est d’Emmanuel Delahaye et proviens de son site dont je fais reference deux fois 🙂

---

<div class="post-metadata">

**Author:** ![tonks](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/t/53a042/32.png) [@tonks](https://www.debian-fr.org/u/tonks)\
**Post date:** [Février 20, 2016, 12:14 UTC](https://www.debian-fr.org/t/gros-debutant-en-programmation-probleme-por-compiler-gcc/2387/10 "2016-02-20T12:14:43Z")

</div>

Bonsoir,  
merci beaucoup pour votre coup de main, j’ai apporté les modification que vous m’aviez conseillées et ça marche. Encore merci.  
A+
