main() 関数への再帰は C で許可されていますか?

Linda Hamilton
リリース: 2024-11-16 09:09:02
オリジナル
169 人が閲覧しました

Is Recursion into main() Function Allowed in C  ?

C での Main() への再帰 : 合法性と標準に関する考慮事項

C プログラミングの領域では、メインへの再帰の動作() 関数はいくつかの議論を引き起こしました。一部のソースではこれが禁止されていると示唆されていますが、コンパイラ g はエラーを発生させることなくそのような再帰を許可しているようです。この記事は、C 標準を詳しく掘り下げ、この慣行の合法性を明らかにすることを目的としています。

Main() への再帰の標準禁止

C 標準によるセクション 3.6.1/3 では、main() への再帰は明示的に禁止されています。この規定は、「関数 main はプログラム内で使用してはならない」と規定しています。

規格における「使用」の定義

規格の文脈では、 「使用済み」は、潜在的に評価される式に名前が表示されるオブジェクトまたはオーバーロードされていない関数を指します。 main() は C プログラムのエントリ ポイントであるため、式またはステートメント内での呼び出しがその使用法になります。

Main() への再帰に対する G の動作

標準では禁止されているにもかかわらず、 g では main() に再帰するコードのコンパイルが許可されています。この動作は、コンパイラの実装固有の、標準に準拠していない解釈に起因する可能性があります。

影響と結果

main() を再帰的に呼び出すと、予測できない結果が生じる可能性があります。 C で。コンパイラはプログラムをエラーで終了させたり、スタック オーバーフローや無限再帰などの未定義の動作を引き起こす可能性があります。

推奨プラクティス

必ず遵守してください。 C 標準に準拠し、潜在的な問題を回避するには、main() 関数への再帰を控えることを強くお勧めします。代わりに、ヘルパー関数を使用したループや再帰などの手法を使用して、目的の機能を実現することを検討してください。

以上がmain() 関数への再帰は C で許可されていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート