2016-07-28 10 views
2

以下のプログラムでは、return 0の値はどこに格納されていますか?実際にはどういう意味ですか?int main()の戻り値はどこに格納されていますか?

#include <iostream.h> 

int main() 
{ 
    cout<<"Hello World"; 
    return 0; 
} 
+0

オペレーティングシステムによって異なります。 – 101010

+1

戻り値は、ホスト環境にプログラムの成功状況を通知します。移植可能に返すことができる唯一の2つの値は、 'EXIT_SUCCESS'または' EXIT_FAILURE'です。前者は「0」を戻すのと同じ効果を有する。異なるプラットフォームでは、さまざまなステータス値をサポートしています(Posixでは8ビットのステータスが可能です)。 –

答えて

2

main()の戻り値は、(それは、コマンドラインから呼び出された場合など)は、典型的には、プロセスの戻り値です。その正確な格納場所と呼び出し元のシェル(または親プロセス)に戻る転送メカニズムは、対象となるプラットフォームによって定義されます。

返信が0EXIT_SUCCESS)は、通常、プログラムはエラーなしで完了したことを意味します。ゼロ以外の値は、エラーを示します。プログラムは、各値の正確な意味を定義します。

+0

「呼び出しシェル」は必要ありません。実際、典型的なOS上のほとんどのプロセスはおそらく "シェル"によって作成されることはありません。 @KerrekSB。 –

+0

正解、それはいくつかの文脈のための例であった。 – Niall

1

戻り値はmainで、プロセスの終了ステータスとして使用されます。 (親プロセスに

をコンピュータプログラミングにおけるプロセスの終了ステータスまたは戻りコードは、子プロセス(または呼び出し先)から渡された少数です:

wikipedia終了ステータスが何を意味するのかを説明しましょう特定のプロシージャまたは委任されたタスクの実行を終了したときに呼び出されます。

戻り値は、親プロセスのメモリに保存されていると言えます。 EXIT_FAILURE値は失敗を示している


(ヘッダ<cstdlib>によって定義される)EXIT_SUCCESS標準マクロの値は、処理が成功したことを示します。

POSIXシステム(および私が使用したすべてのシステム)では、0は成功を示し、ゼロ以外は失敗を示します。

0

実際には言語によって定義されていません。最も一般的には、x86アーキテクチャのEAXレジスタに格納されています。制御フローはmain()と呼ばれるプロセスに戻り、必要な処理を実行できます。

私が見る最も一般的な意味は、通常の実行(成功)では0、一般的なエラーでは1つですが、それぞれの値はプログラム固有の意味を持つ可能性があります。私はメインからintを介して意味のあるものを返すプログラムを構築したことはありませんが、2つの数字を追加するプログラムを作成すると言うと、戻り値の意味は2つの数値の合計です。あなたのプログラムが始まる場所。

関連する問題