la fonction main() en C

J'ai été l'apprentissage de la programmation en C dans un autodidacte de la mode depuis quelques semaines, et il ya quelques questions que j'ai concernant la main() fonction.

  1. Toutes les fonctions doivent être déclarées dans leur prototype de fonction, et plus tard, dans leur définition. Pourquoi n'avons-nous pas à déclarer la main() fonction d'abord un prototype?

  2. Pourquoi devons-nous utiliser int main() au lieu de void main()?

  3. Ce n'return 0 exactement dans le main() fonction? Qu'arriverait-il si j'ai écrit un programme se terminant le main() fonction avec return 1;, par exemple?

  • main() a même son propre Wikipédia
  • 1) est incorrect, le prototype n'est pas un "must"
  • Heads up, " autour de ces pièces, nous aimons garder chaque question à une seule question à la fois. Donc, votre poste sonne comme trois questions. Si vous trouverais beaucoup de écrit à propos de la deuxième déjà, comme stackoverflow.com/questions/9356510/int-main-vs-void-main-in-c
  • Vous pouvez obtenir la valeur renvoyée par votre programme avec $? sur les systèmes unix (doit être quelque chose d'autre sur Windows) : ./myprog && echo $?
  • sur Windows avec cmd.exe c'est %errorlevel% IIRC.
  • bon à savoir ! Merci.
  • Si vous utilisez && dans cette construction, echo ne fonctionnera pas à moins que $? est égale à zéro.
  • La chose drôle est, sur la plupart des systèmes, la grande majorité des numéros de main() peut de retour ne sont pas retournés correctement car le système d'exploitation prend en charge uniquement un sous-ensemble (comme 0 - 255 ou quelque chose de stupide). J'ai l'habitude de simplement me limiter à 0 et 1, ou peut-être un peu plus.
  • Au lieu de renvoyer 0, de la main, il serait sage, si vous utilisez la macro prédéfinie pour le même, à partir de stdlib.h, qui est return EXIT_SUCCESS;, car cela permettra d'élargir à un système dépendant de l'intégrale de l'expression 🙂

InformationsquelleAutor Heikki | 2013-08-26