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

La récursion dans `main()` est-elle autorisée en C ?

Patricia Arquette
Libérer: 2024-11-28 19:16:15
original
132 Les gens l'ont consulté

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

Récursion dans main() en C : est-ce autorisé ?

Malgré l'idée selon laquelle C interdit la récursion dans main(), il existe sont des cas où du code comme celui-ci se compile sans erreur en utilisant g :

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

Cela soulève la question : le standard C autorise-t-il un tel récursion ?

Réponse :

Le standard C interdit explicitement la récursivité dans main() dans la section 3.6.1/3, qui stipule que "La fonction main ne doit pas être utilisé dans un programme." Dans ce contexte, « utilisé » fait référence aux situations où « son nom apparaît dans une expression potentiellement évaluée ».

Par conséquent, les appels récursifs à main() ne sont pas autorisés dans les programmes C. La capacité du compilateur à compiler le code fourni sans erreur est probablement due à ses optimisations spécifiques à l'implémentation ou à une faille dans son interprétation de la norme. Cependant, il n'est pas recommandé de s'appuyer sur un tel comportement car il va à l'encontre de l'interdiction explicite de la spécification du langage.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal