質問の構造と記事の焦点を念頭に置いて、タイトルのオプションをいくつか示します。 **オプション 1 (直接的かつ集中的):** * **C の再帰は未定義の動作ですか?** **オプション 2 (強調

Susan Sarandon
リリース: 2024-10-26 04:50:30
オリジナル
881 人が閲覧しました

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

C における再帰と未定義動作

副作用のない無限ループは、C 11 標準では明示的に未定義動作 (UB) とみなされます。次のプログラムについて考えてみましょう:

<code class="cpp">int main() {
   while (true) {}
}</code>
ログイン後にコピー

このプログラムは意味のあるアクションを実行せず、無期限に実行し続けることができるため、UB です。

再帰も UB ですか?

Now 、再帰プログラムを考えてみましょう:

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

int main() {
   foo();
}</code>
ログイン後にコピー

このプログラムも UB ですか?

標準引用

標準では (1.10p24):

実装では、スレッドが最終的に次のいずれかを実行すると想定できます:

    終了
  • ライブラリ I/O 関数の呼び出し
  • 揮発性オブジェクトにアクセスまたは変更するか、
  • 同期操作またはアトミック操作を実行します。
これは、無限ループと再帰の両方に適用されます。

これにもかかわらず、再帰が入れ子になった再帰関数呼び出しの実装制限を超えると、未定義の動作が発生する可能性があります。これはいつものことです。

以上が質問の構造と記事の焦点を念頭に置いて、タイトルのオプションをいくつか示します。 **オプション 1 (直接的かつ集中的):** * **C の再帰は未定義の動作ですか?** **オプション 2 (強調の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!