2017-10-27 2 views
0

私たちはそれを使用しないとどうなりますか?コンパイラは自動的にC++のように追加しますか?cでint main()を使用する場合はreturn 0ステートメントを使用することが不可欠ですか?

+0

@FredLarson、私はこれが正しい複製ではないと思います。そこには返品*タイプ*についての質問があります。ここでは、 'return'ステートメントが本当に必要かどうかを尋ねます。 –

+1

@JensGustedt:それは完全に回答で覆われています。たとえば、「C++ではint main()も戻り値なしで残すことができますが、デフォルトでは0が返されます。これはC99プログラムでも当てはまります」。 –

+0

@FredLarson、より良い複製はhttps://stackoverflow.com/questions/4138649/why-is-return-0-optionalでしたが、私はあなたがすでにそれを閉じたほど速くはありませんでした。 –

答えて

3

C99準拠のコンパイラ(およびそれ以降)では、自動的に0が返されます。このような場合、C99より前のコンパイラでは戻り値は未定義です。

つまり、モダン Cの場合、mainの末尾に明示的なreturn 0は必要ありません。

+1

これは技術的には正しいですが、十分なコンパイラでもC89モードがデフォルトになっています。まったく普通のC99を実装していないので、Cで 'return 0'を省略しても良いとは限りません。 – zwol

関連する問題