🐷

C言語 return 0; の意味

2025/03/06に公開2

return 0; の意味
C言語において main 関数の最後に return 0; を書く理由は、プログラムの正常終了を示すため です。

C言語の main 関数は、プログラムが終了するときに整数値を返す仕様になっています。この返り値は、OS(オペレーティングシステム)に「プログラムが正常に終了したかどうか」を伝える役割を持ちます。

return 0; → 正常終了(成功) を示す
return 1; など 0 以外 → 異常終了(エラー) を示す
例:
ターミナルやコマンドプロンプトで echo $? を実行すると、直前のプログラムの終了コードが確認できます。(Linux/macOS)

POINT
・main 関数はreturnで整数値を返す
・0は正常終了(成功) を示す。1はエラー時に使用(if文などエラー分岐を書くときとかで使うことが多くなるかな?)

Discussion

齊藤敦志齊藤敦志

main 関数に限って return に遭遇せずに } に到達した場合は return 0; と同じであるということになっています。 必ず return を書かなければならないというわけではありません。 ただ、 main だけの特別な規則なので知らない人も結構いますし、不要でも書いたほうが読む人にとっては親切と言えるでしょう。

main が返す値として言語仕様の規定では 0EXIT̲SUCCESS は正常終了、 EXIT̲FAILURE は失敗終了、それ以外は処理系定義となっています。 特に移植性が重要な場合はこれら以外の値を返すべきではないです。

逆に言えば想定する実行環境があるならそれの規定は調べたほうが良いです。 たとえば POSIX (Unix の統一規格) では下位 8 ビットしか受け渡されないルールなので大きな値は返せないといった制約があります。