2010-07-31 2 views
1

可能重複編譯:
What should main() return in C/C++?計劃與不回0

這是一個非常基本的問題,我猜。

我一直在編程一年,但我的一個朋友讓我感到驚訝,一個相當令人毛骨悚然的問題。

在C++上以'int main()'開頭的程序即使使用'return 0;'也可以完美編譯。刪除並且不會被任何其他返回語句取代。如果沒有返回語句,程序仍會顯示'進程返回0'。

這有什麼解釋嗎? 對不起,如果我的問題很傻!

+0

可能重複的/問題/ 204476 /什麼,應該 - 主 - 回報 - 在-CC) – polygenelubricants 2010-07-31 21:26:43

回答

1

What should main() return in C/C++?

另外值得一提的是,在C++中,詮釋的main()可以沒有返回值留下接受的答案,此時默認爲返回0。這也是真實的有C99程序。是否應該省略返回0是否可以辯論。

5

§3.6.1/ 5:

main return語句具有離開主函數(破壞用自動存儲持續時間的任何對象),並調用exit與返回值作爲效果論據。如果控制到達的主要結束,而不會遇到return語句,其效果是,執行[又該C/C++?主()的返回(http://stackoverflow.com的 return 0;