11

したがって、関数(メインではない) で0を返すことはfalseを意味し、 1または0以外を返すことはsuccess を意味します。

main() 関数に0を入れる理由は、他の関数の1が正常に実行されたことを意味するときにエラーがなかったことを意味します、ありがとう。

4

5 に答える 5

9

特定の数値を返すことは、デフォルトでは何の意味もありません。

開発者は、メソッドが何を返すか、および返される値が何を意味するかを決定します。

main終了コードを返し、エラーがない0場合は単純明快で、 と だけの戻り値がさらに多くあります。01

于 2013-09-07T09:35:00.283 に答える
2

次のように考えてください。

伝統的に、成功を示すブール値を返す関数はありません。代わりに、戻り値の型は、エラー番号またはオブジェクト ポインターのいずれかです。

さて、エラーコードが返ってきてエラーが無ければ、当然エラーは返ってきません。main()これは、戻るときのゼロの意味です。したがって、 のif(main())ようなものを意味しますif(error)

同様に、オブジェクト ポインターが返され、エラーが発生した場合、オブジェクトを返すことはできず、これもゼロ (= null ポインター) で示されます。だから、 のif(getObject())ようなものを意味しますif(/*getObject() actually returned something*/)

そのため、一見間違っているように見えますが、そうではありません。成功のブール値を直接返すものは何もないというだけです。

于 2013-09-07T10:08:21.400 に答える
0

それ自体の戻り値は何の意味もなく、開発者はその値がエラーを意味するかどうかを決定します。

ただし、エラー コードとその処理を見てください。

int MyFunctionWhichCanFail(...)
{
    /*some code*/
    return ERROR_CODE;
}

int FunctionWhichWorksWithFunctionWhichCanFail()
{
    if (MyFunctionWhichCanFail(...))
    {
        //some error handling
    }

    //other stuff
}

この場合、多くの異なるエラーが発生する可能性があるため、エラー コードは非常に適切なオプションboolです。

ERROR_SUCCESSまた、ほとんどのシステムでは、ゼロは(または成功を意味する他のキーワード)として定義されていることに注意してください。

于 2013-09-10T20:04:21.023 に答える