可能性の重複:
Error handling in C code
What return value should you use for a failed function call in C?正常に機能するために0または1を返す必要がありますか?
私はしばらくの間、など、常に0を使用しますが、もしでその本当に読めない
私は1を返すべきでしょうか?主な関数が成功のために0を返すのはなぜですか?
可能性の重複:
Error handling in C code
What return value should you use for a failed function call in C?正常に機能するために0または1を返す必要がありますか?
私はしばらくの間、など、常に0を使用しますが、もしでその本当に読めない
私は1を返すべきでしょうか?主な関数が成功のために0を返すのはなぜですか?
成功のためには、C標準で定義されています(クレジットはhvdになります)。移植性を高めるために
、あなたはそれぞれ、成功と失敗の 従来のステータス値のためのマクロEXIT_SUCCESSとEXIT_FAILURE を使用することができます。これらはstdlib.hファイルで宣言されています。あなたの関数については
(私は価値について話しているメイン、終了または類似の呼び出しからOSに返却)
、あなたが望むものを返すと、コードが読みやすくなり、などあなたのプログラムに沿ってそれを保つ限り長く。
ブール値のステータスを返す場合は、int
をtypedefして使用できます。これにより、関数の戻り値の型が明白になり、が0の場合は、の値が0か1かどうかをチェックする必要はありません。
typedef int BOOL;
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
BOOL myfunc()
{
...
return TRUE;
}
main
が成功するために0を使用する理由は、オペレーティングシステムへのアプリケーションの終了コードとして使用されるためです.0は通常成功を意味し、1(以上)は失敗を意味します。 (もちろん、あらかじめ定義されているマクロEXIT_SUCCESS
とEXIT_FAILURE
を使用してください)。
しかし、アプリケーションでは、失敗の場合はゼロを使用し、成功の場合はゼロ以外の値を使用する方が自然です。戻り値は直接使用できますif
の場合:
if (my_func())
{
...
}
リンクされた質問が閉じられました。 – bernie
@AdamBernier:重複しています。非常に関連性の高い回答がありました。 –
@Oli:他の質問が重複しているとは思われません(おそらく私はそれを見ていないだけです)。それにもかかわらず、私はそれとこの1つを閉じることに同意します:質問はこの特定のウェブサイトのためにあまりにも自由に終わっているように見えます。 – bernie