2017-08-12 6 views
0

int main()ブロックにコードブロックを書く際に、なぜ使用するのですか?プログラム内でのリターンの使用

return 0;

OSがコードが正常に実行されたことを伝えるためです。 しかし、私がreturn 1、return 38などのようなものを使用しても、私のプログラムがまだ正常に実行された場合、どのように影響しますか? 数字のxを使用すると、数字のxが同じことをすることができますか?

+0

戻り値は、プログラムの終了コードを報告し、またはさらなる行動を取るようにOS(ないコンパイラ)で使用することができます。 –

+1

0は[成功した終了]を意味するので(https://www.gnu.org/software/libc/manual/html_node/Exit-Status.html) –

+0

@Weather:情報をありがとう。 –

答えて

1

ゼロ以外の値は、プログラムが異常終了したかエラーが発生したかを示す記号です。スタンドアロンプ​​ログラムの場合、このコードはしばしば無視されるため、それほど重要なことはありません。しかし、サードパーティのソフトウェア、OS、スクリプト、またはシェルで呼び出された場合、これはエラー処理に使用できます。

同様の質問への参照。 So what does "return 0" actually mean?

またQuoraの質問への参照: https://www.quora.com/What-does-return-1-do-in-a-program-in-C

2

多くの環境では、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 /5exitの挙動を覆うの値を返し終了}到達:

最後に、制御に戻されるとホスト環境。 statusの値が0またはEXIT_SUCCESSの場合、実装が定義したステータス成功終了の形式が返されます。 statusの値がEXIT_FAILUREである場合、実装が定義した状態の失敗失敗の形式が返されます。それ以外の場合、返されるステータスは実装定義です。

関連する問題