Maison > développement back-end > C++ > La récursion dans `main()` est-elle légale en C ?

La récursion dans `main()` est-elle légale en C ?

DDD
Libérer: 2024-11-18 20:13:02
original
613 Les gens l'ont consulté

Is Recursion into `main()` Legal in C  ?

Récursivité dans main() en C : Légale ou pas ?

Une idée fausse courante concernant C est la légalité de la récursion dans le main( ) fonction. Bien qu'il puisse sembler intuitif qu'une telle pratique soit interdite, le compilateur ne s'oppose souvent pas à un tel code. Pour clarifier ce problème, approfondissons les subtilités du standard C.

Selon le standard C (3.6.1/3), la récursion dans main() n'est pas autorisée. La norme indique explicitement que « la fonction main ne doit pas être utilisée dans un programme ». Dans ce contexte, « utilisé » implique que la fonction est référencée dans une expression potentiellement évaluée.

Par conséquent, le code suivant est en violation de la norme C :

int main()
{
    main();
}
Copier après la connexion

Malgré cela interdiction, certains compilateurs peuvent ne pas émettre d'erreur lorsqu'ils rencontrent un tel code. Cela peut amener les développeurs à croire que la récursion dans main() est légale, mais il est important de noter que ce comportement est erroné. Le recours à l'acceptation du compilateur ne doit pas remplacer l'adhésion à la norme.

En conclusion, selon la norme C, la récursion dans main() est illégale. Bien que les compilateurs n'appliquent pas toujours cette règle, les développeurs doivent être conscients des exigences de la norme et éviter cette pratique dans leur code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal