したがって、関数(メインではない) で0を返すことはfalseを意味し、 1または0以外を返すことはsuccess を意味します。
main() 関数に0を入れる理由は、他の関数の1が正常に実行されたことを意味するときにエラーがなかったことを意味します、ありがとう。
特定の数値を返すことは、デフォルトでは何の意味もありません。
開発者は、メソッドが何を返すか、および返される値が何を意味するかを決定します。
main
終了コードを返し、エラーがない0
場合は単純明快で、 と だけの戻り値がさらに多くあります。0
1
次のように考えてください。
伝統的に、成功を示すブール値を返す関数はありません。代わりに、戻り値の型は、エラー番号またはオブジェクト ポインターのいずれかです。
さて、エラーコードが返ってきてエラーが無ければ、当然エラーは返ってきません。main()
これは、戻るときのゼロの意味です。したがって、 のif(main())
ようなものを意味しますif(error)
。
同様に、オブジェクト ポインターが返され、エラーが発生した場合、オブジェクトを返すことはできず、これもゼロ (= null ポインター) で示されます。だから、 のif(getObject())
ようなものを意味しますif(/*getObject() actually returned something*/)
。
そのため、一見間違っているように見えますが、そうではありません。成功のブール値を直接返すものは何もないというだけです。
それ自体の戻り値は何の意味もなく、開発者はその値がエラーを意味するかどうかを決定します。
ただし、エラー コードとその処理を見てください。
int MyFunctionWhichCanFail(...)
{
/*some code*/
return ERROR_CODE;
}
int FunctionWhichWorksWithFunctionWhichCanFail()
{
if (MyFunctionWhichCanFail(...))
{
//some error handling
}
//other stuff
}
この場合、多くの異なるエラーが発生する可能性があるため、エラー コードは非常に適切なオプションbool
です。
ERROR_SUCCESS
また、ほとんどのシステムでは、ゼロは(または成功を意味する他のキーワード)として定義されていることに注意してください。