看板 C_and_CPP 關於我們 聯絡資訊
: 推 jeunder:我記得main可以不用寫return, 這是standard規定. 61.64.150.151 08/24 : → randylau:7738 有寫到唷 140.113.22.24 08/24 : 推 sjgau:void main() { }// 不用 return() 210.243.237.65 08/24 : → sjgau:int main() { return(0); }// 需要 return() 210.243.237.65 08/24 : 推 jeunder:不, int main() { } // 就算不寫return也是被允 61.64.150.151 08/24 : → jeunder:許的... 這是standard規定的 :) 61.64.150.151 08/24 : → jeunder:在main裡, 不寫return就代表了return 0 61.64.150.151 08/24 : → jeunder:而 void main() { } 這種寫法根本上就是不合規範 61.64.150.151 08/24 : 推 amymayyam:是可以被允許 可是不知道好還是不好 218.164.85.148 08/24 : 推 amymayyam:想問的是 會不會傷環境 218.164.85.148 08/24 : 推 kakashiliu:void main() { }記得好像是不太好的寫法 61.58.173.56 08/24 void main() { } 是早年 DOS 時代 MS 的編譯器就搞出來 不符標準的東西。因為多數人,包括英文、中文編程書籍的 作者,都在 MS 的淫威下討生活,所以就一直持續出現這種 寫法。 尤有甚者,即使標準說 int main() { } 不寫 return 0; 針對 main() 函式來說,就是要求編譯器自動幫我們在最後 補上 return 0; 這道敘述(但其他的函式就沒這種特權)。 MS 的編譯器卻不肯這樣做,還會多事警告你沒有 return, 讓很多人覺得刺眼,為了省事,就用 void main() { } 了。 我感到慶幸的是,我看的 C 或 C++ 書,沒有一本是寫 void main() 的,而且我以前也沒在用 MS 的 compiler, 現在是有在用 VC++ 7.1,不過 MS 變得比較重視標準了, 所以也沒有什麼問題(不過它還是繼續接受 void main() 的用法)。是因為看到別人提問,才去追蹤問題的根源。 對於初學者,我想建議說,如果你看的書,仍是寫 void main(), 你用的 C++ compiler 仍然對你寫 int main() { } 但沒寫 return 發出警告,那就換一本好書,換一套夠新夠符合標準的編譯 環境吧,網路都有免費的可用,不好好利用,豈不辜負了提 供這些寶藏的好人大大們? ;-) 特別是萬惡的罪魁 VC++ 6.0,或者是實在已經太古老的 Turbo C++,請初學者就不要再用了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.208.168
kakashiliu:推薦這篇文章@@ 61.58.173.56 08/24
amymayyam:kh大跟ka大就是不一樣= = 218.164.85.148 08/24
khoguan:一樣的。大家都一樣有心想要學好 C 和 C++ 語言220.130.208.168 08/24
aufbu:推萬惡的VC6 註解會造成compile error的事情都遇過 203.73.81.31 08/24
UNARYvvv:請問樓上是哪種註解造成 VC6 編譯錯誤呢?? 61.70.137.117 08/24
khoguan:不好意思,我以後應該避免使用"淫威""萬惡罪魁"220.130.208.168 08/25
khoguan:這類強烈的形容詞來語出驚人.做人還是平實的好:)220.130.208.168 08/25
amymayyam:我覺得你們都很厲害耶 以後一定是很偉大的工程 218.164.85.148 08/25
amymayyam:師 我什麼都不懂 我怎麼可能變成大工程師呢 唉 218.164.85.148 08/25
s213895:借轉 06/26 17:46