2017-02-20 50 views
-2

int main()return值應該指示程序如何退出。通常,我們用正常終止的返回值0和異常終止的1來表示。關於void main()在C中的困惑

然後,我只是好奇地知道,如果void main()函數沒有返回任何返回值,那麼如何操作系統知道程序正常終止或不在C?

+3

'void'不在'main'允許的返回類型列表中。所以就不要... – StoryTeller

+1

使用'exit(1)'例如。 –

+0

除非你的執行*特別*將'void main()'作爲合法簽名文件,否則行爲是未定義的 - *任何*結果都是可能的(包括運行時錯誤),並且允許任何結果。這取決於程序如何被調用,以及操作系統期望在特定位置看到什麼。 –

回答

1

void main() C標準不允許。 main應返回int或某種實現定義的數據類型。

+1

它不是*棄用*;它從來不是一個標準的簽名。 'main'總是打算返回'int'。 –

+0

@JohnBode;是啊。但它是在K&R,我可能從那裏回想起它。 – haccks

+2

是的,不幸的是,有太多的引用,甚至是有聲望的引用,都使用了'void main()'。自第一個ISO標準以來已經有27年了,我們仍然*在與這場戰鬥搏鬥。 –