關於c主函式的問題

時間 2022-07-22 08:55:07

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 建構函式的問題

建構函式一般用來對類中的資料成員進行初始化工作,但並不是要對全部資料初始化,你只需要選擇自己需要的資料進行賦值即可。其實這一點從預設的建構函式也能看出來 當你沒有顯示的寫乙個建構函式的時候,編譯器會為你提供乙個預設的建構函式,它沒有引數,只有乙個空語句,也就是說它沒有對任何資料成員進行初始化。由於構...