comment int main () et void main () fonctionnent-ils

Je suis débutant en langage C. Quelqu’un peut-il expliquer en détail en utilisant, par exemple, comment main (), int main (), void main (), main (void), void main (void), int main (void), en langage C? Comme dans ce qui se passe lorsque nous utilisons void main () et ce qui se passe lorsque j’utilise int main () dans un langage simple, etc.
Je sais mais je ne peux pas comprendre ce qu’il fait:

  1. main () – la fonction n’a pas d’argument
  2. int main () – la fonction retourne la valeur int
  3. void main () – la fonction ne renvoie rien, etc.

quand j’écris simple bonjour monde en utilisant int main () return 0, il me donne toujours la même sortie que pour void main ()), alors comment ça marche? Quelle est son application?

Ni main() ni void main() sont des standards C. Les premiers sont autorisés car ils ont une valeur de retour int implicite, ce qui en fait la même chose que int main() . La valeur renvoyée par main sert à renvoyer un statut de sortie au système d’exploitation.

En standard C, 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 déclaration de style ancien qui indique que main prend un nombre non spécifié d’arguments. Ne l’utilisez pas – choisissez l’une des options ci-dessus.

Si vous voulez vraiment comprendre la norme 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()

  • une fonction qui attend un nombre inconnu d’arguments de types inconnus. Renvoie un entier représentant l’état du logiciel d’application.

int main(void)

  • une fonction qui n’attend aucun argument. Renvoie un entier représentant l’état du logiciel d’application.

int main(int argc, char * argv[])

  • une fonction qui attend un nombre d’arguments et des arguments d’arg []. Renvoie un entier représentant l’état du logiciel d’application.

À propos de l’utilisation de chacune des fonctions

int main (void)

  • vous devez utiliser cette fonction lorsque votre programme n’a pas besoin de parameters initiaux pour s’exécuter / charger (parameters reçus du système d’exploitation – en dehors du programme lui-même).

int main (int argc, char * argv [])

  • vous devez utiliser cette fonction lorsque votre programme nécessite le chargement de parameters initiaux (parameters reçus du système d’exploitation – hors du programme lui-même).

À propos de void main()

Dans ANSI C 89, lors de l’utilisation de void main et de la compilation du projet AS -ansi -pedantic (sous Ubuntu, par exemple), vous recevrez un avertissement vous 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() comstack également.

J’espère que cela pourra aider!

Bonne chance et bon codage