1樓:
main 函式應該帶上乙個返回值int,這是出於相容性的考慮在前面的帖子中有位兄弟找到了這樣的一段話 在 c 和 c++ 中不接收任何引數也不返回任何資訊的函式原型為「void foo(void);」。可能正是因為這個所以很多人都誤認為如果不需要程式返回任何資訊時可以把 main 函式定義成 void main(void) 。然而這是錯誤的main 函式的返回值應該定義為 int 型別c 和 c++ 標準中都是這樣規定的。
雖然在一些編譯器中void main 可以通過編譯如 vc6但並非所有編譯器都支援 void main 因為標準中從來沒有定義過 void main 。g++3.2 中如果 main 函式的返回值不是 int 型別就根本通不過編譯。
而 gcc3.2 則會發出警告。所以如果你想你的程式擁有很好的可移植性請一定要用 int main 。
有int main()後就要加上return 0;當然你不顯示的寫int 也就是說預設為int型也要加上return 0否則會有warning出現
2樓:匿名使用者
想家就加,不想加就不加,編譯器自己會處理好。在正常情況下乙個windows應用程式完成了使命執行完畢時,返回0,告訴系統我圓滿完成任務。如果是因為執行期間引數錯誤而退出程式,返回乙個非零的數,乙個數對應一種原因。
設想這樣一種情形,編寫乙個小程式用於連線伺服器,這時就可以用1表示連線失敗,伺服器不響應,2表示連線失敗,伺服器繁忙,這些數值可以被呼叫這個小程式的大程式獲取,從而對使用者進行錯誤說明。
3樓:匿名使用者
要不要返回int完全看函式的定義
關於C 子類建構函式的過載問題
因為你的基類student裡定義了建構函式,基類的預設建構函式不能呼叫。繼承類裡也就不可能使用預設建構函式了。把你基類裡的建構函式改為有預設值的建構函式,就能解決你的問題。如下 include stdafx.h include include using namespace std class st...
關於c語言的scanf函式的逗號問題
對於scanf 函式,如果格式控制串裡有逗號 或其他非格式符號 鍵盤輸入時,必須嚴格按照控制串的內容鍵入,不能隨意輸入。如scanf a d,b d a,b 響應輸入是a xx,b xx xx是整形數 scanf 函式還有一個特點較為常用,該函式會將白字元 空格 作為資料間的分隔符,比如scanf ...
C 中的建構函式問題,c 建構函式的問題
建構函式一般用來對類中的資料成員進行初始化工作,但並不是要對全部資料初始化,你只需要選擇自己需要的資料進行賦值即可。其實這一點從預設的建構函式也能看出來 當你沒有顯示的寫乙個建構函式的時候,編譯器會為你提供乙個預設的建構函式,它沒有引數,只有乙個空語句,也就是說它沒有對任何資料成員進行初始化。由於構...