Heim > Backend-Entwicklung > C++ > Hauptteil

Hier sind einige Titeloptionen unter Berücksichtigung der Fragenstruktur und des Fokus des Artikels: **Option 1 (direkt und fokussiert):** * **Ist Rekursion in C undefiniertes Verhalten?** **Option 2 (Hervorheben

Susan Sarandon
Freigeben: 2024-10-26 04:50:30
Original
881 Leute haben es durchsucht

Here are a few title options, keeping in mind the question structure and the article's focus:

**Option 1 (Direct and focused):**

* **Is Recursion in C   Undefined Behavior?**

**Option 2 (Emphasizes the nuance):**

* **Recursion and Undefined Behavior

Rekursion und undefiniertes Verhalten in C

Endlosschleifen ohne Nebenwirkungen werden im C 11-Standard explizit als undefiniertes Verhalten (UB) betrachtet. Betrachten Sie das folgende Programm:

<code class="cpp">int main() {
   while (true) {}
}</code>
Nach dem Login kopieren

Dieses Programm ist UB, weil es keine sinnvollen Aktionen ausführt und unbegrenzt weiterlaufen kann.

Ist Rekursion auch UB?

Jetzt Betrachten wir ein rekursives Programm:

<code class="cpp">void foo() {
   foo();
}

int main() {
   foo();
}</code>
Nach dem Login kopieren

Ist dieses Programm auch UB?

Standardzitate

Der Standard besagt, dass (1.10p24):

Die Implementierung kann davon ausgehen, dass jeder Thread irgendwann eine der folgenden Aktionen ausführt:

  • beenden
  • eine Bibliotheks-E/A-Funktion aufrufen
  • Auf ein flüchtiges Objekt zugreifen oder es ändern oder
  • eine Synchronisationsoperation oder eine atomare Operation durchführen.

Dies gilt sowohl für die Endlosschleife als auch für die Rekursion.

Trotzdem kann die Rekursion immer noch zu undefiniertem Verhalten führen, wenn sie die Implementierungsgrenze verschachtelter rekursiver Funktionsaufrufe überschreitet. Das war schon immer so.

Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen unter Berücksichtigung der Fragenstruktur und des Fokus des Artikels: **Option 1 (direkt und fokussiert):** * **Ist Rekursion in C undefiniertes Verhalten?** **Option 2 (Hervorheben. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!