2015-12-02 48 views
-3

char/float/double(其他原始數據類型)爲什麼不是main()的返回類型?c/C++中main()的默認返回類型

+1

這可能是有用的:http://stackoverflow.com/questions/449851/why-do-we-need-to-use-int-main-and-not-void-main-in-c –

+0

規範這些問題的重複是[什麼應該'main()'返回在C和C++?](http://stackoverflow.com/questions/204476/) –

回答

1

因爲這就是語言設計的主要方式。

歷史上(即在制定ISO/IEC 9899之前),沒有void。具有您不關心的返回值的函數在沒有返回類型的情況下被聲明,隱式返回類型爲int。當時,它實際上並沒有不管什麼main()回來了,那個叫main()的代碼是這樣的:

setup_stuff(); 
main(argc, argv); 
exit(0); 

main()返回,該方案與想返回0程序退出狀態結束非零退出狀態必須明確地呼叫exit()。 Plan 9保留了這個模型。有些人認爲這是過於嚴格,並改變了這種代碼返回main(),而不是返回值:

setup_stuff(); 
exit(main(argc, argv)); 

這就是我們如何結束了main()返回一個int。就我所知,C++只是從C複製了這個設計方面。

+0

Int是默認返回類型的main() – geeksam

相關問題