int main()ブロックにコードブロックを書く際に、なぜ使用するのですか?プログラム内でのリターンの使用
return 0;
OSがコードが正常に実行されたことを伝えるためです。 しかし、私がreturn 1、return 38などのようなものを使用しても、私のプログラムがまだ正常に実行された場合、どのように影響しますか? 数字のxを使用すると、数字のxが同じことをすることができますか?
int main()ブロックにコードブロックを書く際に、なぜ使用するのですか?プログラム内でのリターンの使用
return 0;
OSがコードが正常に実行されたことを伝えるためです。 しかし、私がreturn 1、return 38などのようなものを使用しても、私のプログラムがまだ正常に実行された場合、どのように影響しますか? 数字のxを使用すると、数字のxが同じことをすることができますか?
ゼロ以外の値は、プログラムが異常終了したかエラーが発生したかを示す記号です。スタンドアロンプログラムの場合、このコードはしばしば無視されるため、それほど重要なことはありません。しかし、サードパーティのソフトウェア、OS、スクリプト、またはシェルで呼び出された場合、これはエラー処理に使用できます。
同様の質問への参照。 So what does "return 0" actually mean?
またQuoraの質問への参照: https://www.quora.com/What-does-return-1-do-in-a-program-in-C
多くの環境では、main()
から返された戻り値は、プログラムを実行したときにアクセスできます。たとえば、bash
でこれを見ることができます($?
は最後のプログラムの戻りコードを保持するbash
特殊変数です)。パイプラインを実行すると実際には少し複雑になりますが、この質問の目的):
これは「外の世界」へのプログラムの成功またはそうでないことを示す良い方法です。私たちの中で、言語の弁護士については
は、それが最初で5.1.2.2.3 Program termination /1
(私の強調)(
C11
用)カバーされています:
main
関数の戻り値の型は、
int
と互換性のある型である場合は
、リターンmain関数への最初の呼び出しから、
main
関数を引数として返された値でexit
関数を呼び出すことに相当します。はmain
関数は0
それが実際に実行を終了に関連したセクション7.22.4.4 The exit function /5
がexit
の挙動を覆うの値を返し終了}
到達:
最後に、制御に戻されるとホスト環境。 statusの値が0または
EXIT_SUCCESS
の場合、実装が定義したステータス成功終了の形式が返されます。 statusの値がEXIT_FAILURE
である場合、実装が定義した状態の失敗失敗の形式が返されます。それ以外の場合、返されるステータスは実装定義です。
戻り値は、プログラムの終了コードを報告し、またはさらなる行動を取るようにOS(ないコンパイラ)で使用することができます。 –
0は[成功した終了]を意味するので(https://www.gnu.org/software/libc/manual/html_node/Exit-Status.html) –
@Weather:情報をありがとう。 –