If the return type of the main function is a type compatible with int, a return from the initial call to the main function is equivalent to calling the exit function with the value returned by the main function as its argument;
C11 7.22.4.4/5
Finally, control is returned to the host environment. If the value of status is zero or EXIT_SUCCESS, an implementation-defined form of the status successful termination is returned
Hello WorldというよりC処理系の問題では? (スコア:0)
戻り値出力のときのエラーを正しく返すのはC処理系の役目であって、それが正しく返さないんだからHello Worldプログラムであろうがなんだろうがエラーをキャッチできなければどうしようもないよね
Re: (スコア:0)
処理系がmainの戻り値を無視して勝手に終了コード変えていいの?
Re: (スコア:4, 参考になる)
C11 5.1.2.2.3/1
C11 7.22.4.4/5
だから、規格適合の処理系はmainの戻り値が0かEXIT_SUCCESSなら勝手
Re: (スコア:0)
それは規格が結果的に間違ってるんじゃないかなぁ
処理系は規格に従って正しく実装されているかもしれないけど、現実は失敗してるのが事実なわけで…
Re:Hello WorldというよりC処理系の問題では? (スコア:0)
ユーザ要求に適合するか不適合かを、正しい、間違っているで論ずるのは、炎上の元です。
あるユーザの要求と別のユーザの要求が、同時に両立することができないのが、この界隈なので、そういうもの(既得権益同様、先行ユーザ益優先)と譲歩(妥協)するしかないです。