Je suis débutant en langage C. Quelqu'un peut-il expliquer en détail à l'aide d'exemples comment fonctionnent main (), int main (), void main (), main (void), void main (void), int main (void) en langage C? Comme dans ce qui se passe quand on utilise void main () et ce qui se passe quand j'utilise int main () dans un langage simple et ainsi de suite.
Je sais mais je ne comprends pas ce que ça fait:
quand j'écris simple hello world en utilisant int main () return 0, cela me donne toujours la même sortie que lorsque j'utilise void main ()) alors comment ça marche? Quelle est son application?
main()
ou void main()
ne sont pas des standards C. La première est autorisée car elle a une valeur de retour implicite int
, ce qui la rend identique à int main()
. Le but de la valeur de retour de main
est de renvoyer un exit status au système d'exploitation.
En C standard, les seules signatures valides pour main
sont:
int main(void)
et
int main(int argc, char **argv)
Le formulaire que vous utilisez: int main()
est une ancienne déclaration de style qui indique que main
prend un nombre non spécifié d'arguments. Ne l'utilisez pas - choisissez l'une de celles ci-dessus.
Si vous voulez vraiment comprendre ANSI C 89, je dois vous corriger en une chose; Dans ANSI C 89, la différence entre les fonctions suivantes:
int main()
int main(void)
int main(int argc, char* argv[])
est:
int main()
int main(void)
int main(int argc, char * argv[])
À propos de l'utilisation de chacune des fonctions
int main (void)
int main (int argc, char * argv [])
À propos de void main()
Dans ANSI C 89, lorsque vous utilisez void main
Et que vous compilez le projet COMME -ansi -pedantic
(Dans Ubuntu, par exemple), vous recevrez un avertissement indiquant que votre fonction principale est de type void et non de type int, mais vous pourrez exécuter le projet. La plupart des développeurs C ont tendance à utiliser int main()
sur toutes ses variantes, bien que void main()
compile également.