4
私は関数内でexit(1)コマンドを使用する必要があります。 これは、使用されている関数の戻りデータ型と何か関係がありますか?プログラミングで関数のデータ型を返す
私は関数内でexit(1)コマンドを使用する必要があります。 これは、使用されている関数の戻りデータ型と何か関係がありますか?プログラミングで関数のデータ型を返す
No. exit
機能は返されませんが、呼び出されたプロセスは終了しません。 Cコンパイラはそれを直感的に理解しておらず、他のvoid
関数を返すように扱います。
これは、exit
があなたの機能を終了させるが、Cコンパイラはそれをそのようには見ないが、これは意味する。したがって、それでも有効な戻り値が必要な場合は、十分なエラーレベルを有効にして警告/エラーを吐き出します。しかし、これはうまくいくほど簡単です
int myFunc() {
...
exit(exitCode);
return 42; // Never hit but keeps C compiler happy
}
+1 42を返すにはもう一度+1しますが、それは不可能です。 – sidyll
正しい。しかし、exit()の引数はプログラムの終了ステータスとして使用され、そのステータスコードの意味はシステム固有のものであることに注意してください。 Unixのようなシステムでは、 'exit(1);'は失敗を示します。 VMSでは、成功を意味します。成功の場合は 'exit(EXIT_SUCCESS);'失敗の場合は 'exit(EXIT_FAILURE);'( 'で宣言されていますが、' exit() 'を呼び出す場合は'#include 'する必要があります) 'exit(N);'は 'main()'の 'return N;'と同じです。 –