I FORTEMENT seconder le commentaire de R. concernant l'utilisation de exit() pour éviter d'avoir un stockage automatique dans l'espace de stockage de l'utilisateur. main()
récupérés avant la fin effective du programme. A return X;
déclaration dans main()
n'est pas précisément équivalent à un appel à exit(X);
puisque le stockage dynamique de main()
disparaît lorsque main()
retourne, mais il ne disparaît pas si un appel à exit()
est faite à la place.
De plus, en C ou dans un langage similaire, une fonction return
laisse fortement entendre au lecteur que l'exécution se poursuivra dans la fonction appelante, et bien que cette poursuite de l'exécution soit techniquement vraie si l'on compte la routine de démarrage C qui a appelé la fonction main()
ce n'est pas exactement ce que vous quand vous voulez mettre fin au processus.
Après tout, si vous voulez terminer votre programme à partir de n'importe quelle fonction autre que main()
vous doit llame a exit()
. En le faisant de manière cohérente dans main()
rend également votre code beaucoup plus lisible et permet à quiconque de le remanier plus facilement ; par exemple, le code copié à partir de main()
à une autre fonction ne se comportera pas mal à cause d'un accident. return
les déclarations qui debe ont été exit()
appels.
Donc, en combinant tous ces points ensemble, la conclusion est que c'est un mauvaise habitude au moins pour C, d'utiliser un return
pour terminer le programme en main()
.