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 サイトの他の関連記事を参照してください。