2017-02-20 3 views
-2

int main()では、returnの値は、プログラムの終了方法を示します。通常、正常終了の場合は0、異常終了の場合は1と表示されます。C言語のvoid main()についての混乱

void main()関数が戻り値を返さない場合は、オペレーティングシステムはどのようにしてオペレーティングシステムがCで正常終了するかどうかを知ることができますか?

+3

'void'は' main'に対して許可された戻り値の型のリストにありません。だからただしないでください... – StoryTeller

+1

例えば 'exit(1)'を使ってください。 –

+0

*あなたの実装が法律上の署名として 'void main()'を文書化していない限り、その動作は未定義です* *任意の*結果が可能です(ランタイムエラーを含む)。これは、プログラムがどのように呼び出されるか、そしてOSが特定の場所で見たいものに依存します。 –

答えて

1

void main()はC標準では許可されていません。 mainは、intまたは実装によって定義されたデータ型のいずれかを返す必要があります。

+1

*推奨されていません。それは決して標準的な署名ではありませんでした。 'main'は常に' int'を返すことを意図していました。 @ JohnBode; –

+0

;うん。しかし、それはK&Rにあり、そこからそれを思い出すかもしれません。 – haccks

+2

残念ながら、 'void main()'を使った評判の高いものでさえ、あまりにも多くの参照があります。最初のISO標準から27年経った今、まだこの戦いと戦っています。 –

関連する問題