Heim > Backend-Entwicklung > C++ > Ist die Rekursion in Main() in C gesetzlich zulässig?

Ist die Rekursion in Main() in C gesetzlich zulässig?

DDD
Freigeben: 2024-11-12 16:41:02
Original
942 Leute haben es durchsucht

Is Recursion into Main() Legally Allowed in C  ?

Untersuchung der Rechtmäßigkeit der Rekursion in Main() in C

Eine wiederkehrende Debatte unter Programmierern ist die Rechtmäßigkeit der Rekursion in main() in C . Während einige Quellen darauf hinweisen, dass dies verboten ist, zeigen andere das scheinbar widersprüchliche Verhalten von Compilern, die solchen Code akzeptieren.

Die Perspektive des C-Standards

Gemäß dem C-Standard in 3.6. 1/3, eine Rekursion in main() ist ausdrücklich verboten: „Die Funktion main darf nicht innerhalb von a verwendet werden Programm.“

Verstehen von „Verwendet“ im Kontext des Standards

Der Standard definiert „verwendet“ als: „Ein Objekt oder eine nicht überladene Funktion wird verwendet, wenn sein Name erscheint in einem potenziell ausgewerteten Ausdruck.“

Im Fall des Beispielcodes präsentiert:

int main()
{
    main();
}
Nach dem Login kopieren

Der Aufruf von main() erscheint im Hauptteil von main(), einem potenziell ausgewerteten Ausdruck. Daher wird laut Definition des Standards main() innerhalb des Programms verwendet, was es illegal macht.

Compiler-Verhalten und mögliche Ausnahmen

Trotz des Verbots des Standards mögen Compiler g kann solchen Code ohne Fehler kompilieren. Dieses Verhalten wird im Allgemeinen nicht empfohlen und sollte nicht als verlässlich angesehen werden. Compiler können mit solchen Situationen auf nicht standardmäßige oder umsetzungsspezifische Weise umgehen.

Rekursion in Main() vermeiden

Um die Einhaltung des C-Standards sicherzustellen und potenzielle Probleme zu vermeiden , wird dringend empfohlen, eine Rekursion in main() zu vermeiden. Erwägen Sie stattdessen die Verwendung alternativer Entwurfsmuster oder Programmiertechniken, um die gewünschte Funktionalität zu erreichen, ohne die Regeln der Sprache zu verletzen.

Das obige ist der detaillierte Inhalt vonIst die Rekursion in Main() in C gesetzlich zulässig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage