1. 程式人生 > >C++11標準的main()函式的返回型別為什麼必須是int型別

C++11標準的main()函式的返回型別為什麼必須是int型別

在C/C++ 中,不返回任何資訊的函式原型為“void function(...);”。可能正是因為這個,所以很多人都誤認為如果不需要程式返回值時可以把main函式定義成void main() 。然而這種做法是錯誤的!

C++Primer第五版中文版(Page28)明確指出,main()函式的返回型別必須是int型別,即整數型別。

雖然在一些編譯器中,void main() 可以通過編譯,但並非所有編譯器都支援void main() ,因為標準中從來沒有定義過void main() 

main 函式只有以下兩種定義方式是正確的:

int main()

 int main(int argc, char *argv[])

main 函式的返回值應該定義為 int 型別,C 和 C++ 標準中都是這樣規定的。這樣程式才能傳告訴作業系統是否成功執行完畢。

但是,main的返回值型別,寫成void也不會錯,它等效於沒有return 語句的int型別。不過為了養成良好的習慣,最好還是寫成int。

另外,return返回的數值由程式的作者自定。返回不同的值可以代表不同的含義,一般是代表出錯的原因。傳統上返回0代表程式正常結束(其它返回值代表什麼含義,需要程式的開發者向程式的使用者說明)。