作者khoguan (Khoguan Phuann)
看板C_and_CPP
标题Re: [讨论] 有关main
时间Wed Aug 24 19:50:21 2005
: 推 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
1F:推 kakashiliu:推荐这篇文章@@ 61.58.173.56 08/24
2F:推 amymayyam:kh大跟ka大就是不一样= = 218.164.85.148 08/24
3F:推 khoguan:一样的。大家都一样有心想要学好 C 和 C++ 语言220.130.208.168 08/24
4F:推 aufbu:推万恶的VC6 注解会造成compile error的事情都遇过 203.73.81.31 08/24
5F:推 UNARYvvv:请问楼上是哪种注解造成 VC6 编译错误呢?? 61.70.137.117 08/24
6F:推 khoguan:不好意思,我以後应该避免使用"淫威""万恶罪魁"220.130.208.168 08/25
7F:→ khoguan:这类强烈的形容词来语出惊人.做人还是平实的好:)220.130.208.168 08/25
8F:→ amymayyam:我觉得你们都很厉害耶 以後一定是很伟大的工程 218.164.85.148 08/25
9F:→ amymayyam:师 我什麽都不懂 我怎麽可能变成大工程师呢 唉 218.164.85.148 08/25
10F:推 s213895:借转 06/26 17:46