Heim  >  Artikel  >  Backend-Entwicklung  >  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

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
Susan SarandonOriginal
2024-10-26 04:50:30882Durchsuche

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>

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>

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!

Stellungnahme:
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