C++小BUG大围剿
最近正在看一本关于C++常见BUG的书,觉得受益匪浅,拿出来大家一起分享一下哦
程序1
在大部分编程书里面,Hello World程序几乎都是第一个示列程序,而且没有什么差别,但是下面这个程序你觉得有错吗?
1 /*************************************
2 *The “standard” hello world program*
3 *************************************/
4 #include<iostream>
5
6 void main(void)
7 {
8 std::cout<<“Hello World!\n”;
9 }
答案是什么呢?
[replyview]
答案:这个程序可以在所有已知的C++编译器上编译个和运行,但它是错误的,因为该程序不标准,可以在机器上运行一下,看一看这个程序返回的操作系统是什么啊?对于这个程序操作系统调用的代价有些高。问题在第6行,函数main不是一个void型函数,而是一个int函数,该函数向操作程序返回一个退出码,正常的程序应如下文所示:
1 /*************************************
2 *The “standard” hello world program*
3 *************************************/
4 #include<iostream>
5
6 int main()
7 {
8 std::cout<<“Hello World!\n”;
9 return(0);
10 }
[/replyview] [align=right][color=#000066][此贴子已经被作者于2006-11-23 12:37:33编辑过][/color][/align]