>>236
規定はないけどある程度の習慣はあって、おおざっぱにまとめると
・関数が受け持つ機能が副作用であり、
返却値は成功or失敗のみを通知すればよいときは 0 を成功値とする
・関数が意味のある値を返すときはありうる値の範囲ではない値を失敗値とする
(0、ヌルポインタ、負数、無限、NaNなど)
・入力値 (関数の引数) が正しい限り失敗がないことを見込めるときは
不正な入力があった場合を未定義とする
(呼出し前にチェックされているか、ロジック上正しいことをプログラマが保証することを期待する)
という感じだと思う。
あくまでも標準ライブラリやそれを踏襲した習慣をまとめるとこんな感じだろうという私なりのまとめなので
常に正しい選択というわけではないということはことわっておくが、
標準ライブラリを全く使わないようなプログラムもないだろうし
標準ライブラリを真似ておけば全体として一貫性が出て綺麗なんじゃないかな。
規定はないけどある程度の習慣はあって、おおざっぱにまとめると
・関数が受け持つ機能が副作用であり、
返却値は成功or失敗のみを通知すればよいときは 0 を成功値とする
・関数が意味のある値を返すときはありうる値の範囲ではない値を失敗値とする
(0、ヌルポインタ、負数、無限、NaNなど)
・入力値 (関数の引数) が正しい限り失敗がないことを見込めるときは
不正な入力があった場合を未定義とする
(呼出し前にチェックされているか、ロジック上正しいことをプログラマが保証することを期待する)
という感じだと思う。
あくまでも標準ライブラリやそれを踏襲した習慣をまとめるとこんな感じだろうという私なりのまとめなので
常に正しい選択というわけではないということはことわっておくが、
標準ライブラリを全く使わないようなプログラムもないだろうし
標準ライブラリを真似ておけば全体として一貫性が出て綺麗なんじゃないかな。