🐷
C言語 return 0; の意味
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
が返す値として言語仕様の規定では0
かEXIT̲SUCCESS
は正常終了、EXIT̲FAILURE
は失敗終了、それ以外は処理系定義となっています。 特に移植性が重要な場合はこれら以外の値を返すべきではないです。逆に言えば想定する実行環境があるならそれの規定は調べたほうが良いです。 たとえば POSIX (Unix の統一規格) では下位 8 ビットしか受け渡されないルールなので大きな値は返せないといった制約があります。
コメント、ご教授いただきありがとうございます!