//原创文章,保留一切权力,转载请注明出处
//作者:ji_gr
前言: 我读代码系列试图通过一些经典的代码,探讨一些C++的细节,进而发掘更深入的东西。
我始终认为,作为一个好的程序员,应该有洞悉本质的本领,更要有善于把握代码细节的习惯!
// The Hello world program.
// 来源:http://www.research.att.com/~bs/hello_world.c
// 作者: bs@research.att.com
#include
int main()
{
std::cout << "Hello, world!\n";
}
// note that "return 0;" isn't required in ISO C++
调试:
在vs.net下,要在包含一个头文件:#include "stdafx.h",调试通过。
这个程序简单的跟一似的,跟大家打了个招呼而已!
但是,还是有问题值得探讨的:
问题一:,后缀.h呢?
答:标准说不要.h,因为不同的编译器后缀不同。
问题二:记得老师说过,#include 和#include "filename.h"都一样,是吗?既然一样要两个干吗?
答:有区别。《C++ primer》里说:<>用于包含标准库的头文件,并且不带后缀。"",是用来包含编译器或者程序员自己的头文件的。
下面作几个试验:在vs.net下:
#include "stdafx"///错,不行
#include ////错,不行
#include ////ok!
#include "iostream"//?可以吗?可以!呵呵,最好别这样
看出点什么来了吗?实际上,我们应该坚持这样的原则:#include , #include "self_head_file.h"。
问题三:note that "return 0;" isn't required in ISO C++???标准说了,return 0;可以不写?
答:时可以不写,不过还是写上把,明确不是!
问题三:干脆,把这个程序再写的专业一点吧!
答:OK!
//我读代码系列(一)--------Hello, world!
//下面的代码才够专业?
#include
using namespace std;//std当然要写到这里了,省得std::个没完。
int main()
{
cout << "Hello, world!" << endl;//endl 和 ‘\n’是不一样的,至于区别吗?再说!
return 0;//标准不要求?我写上怎么了,不写别人怎么知道呀。意义明确!
}
其实,bs的Hello, world是给初学者对程序一个感性认识。而我在这里,探讨了一些细节。我觉得一段
有用的代码,细节处理得好不好,是非常重要的,直接影响了代码的质量,您说呢?