0

だから、私は C++ はまったく初めてですが、Java についてはすでによく知っています。

私は現在、thenewboston のチュートリアルを見ています。彼は、0 を返せば、コンピュータはプログラムが正常に動作したことを認識していると言いました。

さて、私の質問は次のとおりです。これは機能に影響しますか? 計算された数値を返したいのですが、それが驚くほど 0 だった場合、0 が返されるのでしょうか、それとも関数から何も返されないのでしょうか?

4

3 に答える 3

8

0 を返すと、コンピューターはプログラムが正常に動作することを認識します。

これはメイン関数に固有です。他の関数は、必要なものを何でも返すことができます。Main は、プログラムの開始点であり、終了点でもあるという点で特別です。プログラムが開始すると、 main は、 main が戻ってから終了するときにのみ呼び出されます。main 関数のリターン コードを監視することは、最近では時代遅れになっていると思いますが、エラーが発生したときに -1 などを返す多くのコードをまだ目にします。誰がそのエラー コードを見ていますか? ほとんどの場合、OS。

于 2013-07-07T21:29:10.357 に答える
5

特にUnixの世界では、ゼロを返すことは慣習です。プログラム (つまり main() 関数) がゼロを返す場合、それは正常に終了したことを意味します。他の値は (必ずしもそうとは限りませんが) エラーを意味する場合があります。sysexits.h一般的な戻りコードのリストを確認できます。

また、return ステートメントを見逃した場合でも、main() は (暗黙的に) ゼロを返します (C++ で有効)。C++ 標準3.6.1 ポイント 5 で定義されています。

制御が return ステートメントに遭遇せずに main の最後に達した場合、結果は return 0 を実行することになります。

シェルでは、ex。$?Bash では、変数を調べることで main() から返された値を確認できます。次に例を示します。

$ g++ prog.cpp
$ ./a.out
$ echo $?
0

main() 以外の関数では、0 はブール値の false であるため、0 を返すことは成功 (または true) として解釈されない可能性があることに注意してください。ただし、戻り値は何でもかまいませんし、一般的には特別な意味を持たないので、0 を返しても問題ありません。

于 2013-07-07T21:31:32.143 に答える
4

関数で0 を返すmainことだけが、特別な意味を持ちます。これは通常、プログラムが成功したことを OS が理解できるようにするためのものであり、C++ の内部構造自体に関する限り、特に興味深いものではありません。

于 2013-07-07T21:30:14.253 に答える