這是一個非常基本的問題,我猜。
我一直在編程一年,但我的一個朋友讓我感到驚訝,一個相當令人毛骨悚然的問題。
在C++上以'int main()'開頭的程序即使使用'return 0;'也可以完美編譯。刪除並且不會被任何其他返回語句取代。如果沒有返回語句,程序仍會顯示'進程返回0'。
這有什麼解釋嗎? 對不起,如果我的問題很傻!
這是一個非常基本的問題,我猜。
我一直在編程一年,但我的一個朋友讓我感到驚訝,一個相當令人毛骨悚然的問題。
在C++上以'int main()'開頭的程序即使使用'return 0;'也可以完美編譯。刪除並且不會被任何其他返回語句取代。如果沒有返回語句,程序仍會顯示'進程返回0'。
這有什麼解釋嗎? 對不起,如果我的問題很傻!
從What should main() return in C/C++?
另外值得一提的是,在C++中,詮釋的main()可以沒有返回值留下接受的答案,此時默認爲返回0。這也是真實的有C99程序。是否應該省略返回0是否可以辯論。
§3.6.1/ 5:
在
main
return語句具有離開主函數(破壞用自動存儲持續時間的任何對象),並調用exit
與返回值作爲效果論據。如果控制到達的主要結束,而不會遇到return語句,其效果是,執行[又該C/C++?主()的返回(http://stackoverflow.com的return 0;
可能重複的/問題/ 204476 /什麼,應該 - 主 - 回報 - 在-CC) – polygenelubricants 2010-07-31 21:26:43