私が読んだC++入門書には
mainから返される値は、システムに依存する方法でアクセスされます。UNIXシステムとWindowsシステムの両方で、プログラムを実行する前に、適切なechoコマンドを発行する必要があります。UNIXでは、echo $?によってステータスを取得します。
したがって、プログラムが
int main ()
{
return -88;
}
なぜecho $?
返品しないのですか?(168が印刷されますecho
)
そうです、ある種。ただし、値は符号なし8ビット値に変換されます。これは256 − 88=168です。これはシステムに依存するマニエリスムの一部です。
から値を返すことmain
は、その値を使用して呼び出すことと同じstd::exit
です。これは、標準の後半のドラフトが述べていることですstd::exit
(18.5、status
それを呼び出す値です):
最後に、制御がホスト環境に戻されます。
status
がゼロまたはの場合EXIT_SUCCESS
、実装で定義された形式のステータス 正常終了が返されます。status
の場合EXIT_FAILURE
、実装で定義された形式のステータスの失敗した終了が返されます。それ以外の場合、返されるステータスは実装定義です。
通常、値はそのまま解釈されるか、より小さな(おそらく符号なし)型に変換されますが、これは実際には環境と実装によって異なります。