l'appel de main() dans main() en c

Est-il possible d'appeler main() dans le main() fonction en c?

  • Avez-vous l'essayer? Fait-il?
  • Rien ne vous empêche de l'appel d'une fonction à l'intérieur de son contexte. Cela s'appelle de la récursivité.
  • juste parce que quelque chose semble travailler dans un exemple de test ne signifie pas que ce sera toujours le cas, ou est correct. "essayez-le et voyez si cela fonctionne" est souvent dangereux, en C.
  • J'ai toujours aimé voir l'auteur a pris soin d'essayer au moins de la première et de partager ses expériences avant de poser la question. Je n'ai pas envie de personnes utilisant ce interactif de l'interface Google.
  • C'est une question légitime, par exemple, la norme C++ spécifiquement interdit, alors qu'une "essayez-le et voyez si cela fonctionne" approche serait probablement montré que "ça marche" si cette question a été sur le C++, mais il ne serait pas correct.
  • "Avez-vous l'essayer?" a peu à voir avec la question. Il y a beaucoup de choses ridicules compilateur implémentations permettent (comme void *x; x+=42;) qui ne sont pas légales C. Ceci, cependant (appel récursif de main) est légal C.
  • À moins que votre version de C++ qui se passe à l'appel mondial des constructeurs à partir d'un invisible, premier-déclaration dans main, puis finit par les appeler à chaque fois que vous recurse en main... 😉
  • Si vous souhaitez des exemples de main() appel main(), ici sont nombreuses: ioccc.org C'est le site de l'International Obfuscated C Code Contest, et en pliant le tout en un unique fonction appelée main est un moyen efficace de la dissimulation de la technique.
  • beaucoup de l'IOCCC les entrées ne sont pas conformes à la norme ISO C standard
  • C'est vrai. Mais ils ne font pour des exemples intéressants 😉

InformationsquelleAutor anant | 2010-11-21