3

私が読んだC++入門書には

mainから返される値は、システムに依存する方法でアクセスされます。UNIXシステムとWindowsシステムの両方で、プログラムを実行する前に、適切なechoコマンドを発行する必要があります。UNIXでは、echo $?によってステータスを取得します。

したがって、プログラムが

int main ()
{
    return -88;
}

なぜecho $?返品しないのですか?(168が印刷されますecho

4

2 に答える 2

4

そうです、ある種。ただし、値は符号なし8ビット値に変換されます。これは256 − 88=168です。これはシステムに依存するマニエリスムの一部です。

于 2012-08-17T17:52:09.133 に答える
1

から値を返すことmainは、その値を使用して呼び出すことと同じstd::exitです。これは、標準の後半のドラフトが述べていることですstd::exit(18.5、statusそれを呼び出す値です):

最後に、制御がホスト環境に戻されます。statusがゼロまたはの場合EXIT_SUCCESS、実装で定義された形式のステータス 正常終了が返されます。statusの場合EXIT_FAILURE、実装で定義された形式のステータスの失敗した終了が返されます。それ以外の場合、返されるステータスは実装定義です。

通常、値はそのまま解釈されるか、より小さな(おそらく符号なし)型に変換されますが、これは実際には環境と実装によって異なります。

于 2012-08-17T17:55:13.457 に答える