带有笑话的c++找错书(第一个问题)

来源:互联网 发布:手机mac修改器那个好用 编辑:程序博客网 时间:2024/05/17 01:24

1.Hello world
"hello world"程序几乎是任何教授程序书籍的第一个程序,一般而言,都不会是很复杂的程序。但是这个程序竟然不能编译成功!
是什么导致了这么个简单的“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 }

//笑话1
////////////////////////////////////////////////////////////////////////////
用户:今天我不能登陆系统了。“猫”(modem)不能连接了。
客服:看看你的调制解调器,告诉我哪个灯亮的。
用户: 这个我做不到。
客服:你要知道,除非你能把问题告诉我,否则我无法帮你解决这个问题。难道你不能看下解调器的状态么?
用户:不行,这个办不到。
客服:为什么?
用户:“猫”放到地下室了。
客服:哪么,为什么你能不能到地下室去看看呢?
用户:你在开玩笑吧!?那的水可有6英尺深呢。
客服:计算机无法在水中工作。
用户(充满疑惑的):真的么?
//////////////////////////////////////////////////////////////////////////
我的答案,因为main函数,与c++标准的定义的声明不一致。标准是:
int main(int argc, char** argv)
(应该还有一个wchar_t版本的,这个就不深究了。
///////////////////////////////////////////////////////////////////////////
标准答案:
问题出在第6行 void main(), main函数的原型不是无返回值的,它应该返回int。函数应该返回一个状态值告诉操作系统。一个正规的“hello world”应该写成这样:
 1 /************************************************
 2  * The "standard" hello world program.          *
 3  ************************************************/
 4 #include <ostream>
 5
 6 int main()
 7 {
 8     std::cout << "Hello world!/n";
 9     return (0);
10 }

当我妻子学编程时,这是她被教的第一个程序(void版本的)。我把void换成int后,她把作业叫了上去了。助教说她做错了,并把作业退了回来。
不用说,我非常不高兴并给他写了封非常不客气的信,告诉他main函数应该返回一个int,并指出C++标准的哪章哪节里指出了这个问题。他非常客气的回了信(承认我说的对)。

原创粉丝点击