1.6空白与基本格式

空白是指用于格式化的字符,在C++中主要指空格符、换行符、制表符。C++编译器通常会忽略空白(一些特殊情况除外,比如输出时的空格),所以下面几个语句是一样的。

cout << "Hello world!";
 
cout               <<            "Hello world!";
 
		cout << 		"Hello world!";
 
cout
	<< "Hello world!";

可以看到,即使最后一个语句中使用了换行符也是没有关系的,编译器会忽略它。

同样,下面几个函数也是相同的。

int add(int x, int y) { return x + y; }

int add(int x, int y) {
    return x + y; }

int add(int x, int y)
{  return x + y; }

int add(int x, int y)
{
    return x + y;
}

编译器不会忽略空白的一种情况是引号中的文本,比如:

"Hello world!"

"Hello     world!"

是不同的,打印出的格式与引号中格式相同。

注意引号中是不允许有换行符的。

cout << "Hello
     world!" << endl; // 不允许

另一种情况则是在单行注释中,单行注释只作用于一行,因此这样会给你带来麻烦:

cout << "Hello world!" << endl; // 一个单行注释
这个非注释内容

基本格式

与一些语言不同,C++并没有强制性的格式标准(如前面所提,C++哲学是对程序员的绝对信任)。在C++漫长的发展历程中,有多种格式化方法成为默认的标准,你会发现何种方法更好一直存在争议,我们的基本原则是,最好的方法应当是使代码可读性最好、一致性最好的方法。推荐格式如下:

一、制表符应设置为4个空格大小(大多数IDE中都可以进行配置),当然3个空格也是不错的。使用空格代替制表符的好处是,在不同的软件中打开代码时能保证缩进不变。

二、指示函数范围的大括号应与函数名对齐并且另起一行。

int main()
{

}

尽管一些程序员喜欢另一种风格,比如把第一个大括号放在函数名的后面,但是上面的方法可读性一般更好并且更不容易犯错,如果发生括号匹配错误很容易就可以看出来。

三、花括号中的每一个语句之前应有一个制表符大小的空白,如下:

int main()
{
   cout << "Hello world!" << endl; // tabbed in one tab
   cout << "Nice to meet you." << endl; // tabbed in one tab 
}

四、每一行不应太长,通常来说,72, 78, 或80个字符已经是最长的了。如果一行太长,就应当在合适的结点将其分为多行,多行之间再使用一个制表符。长语句之间最好添加一行空白分开,以增加可读性。如下:

int main()
{
    cout << "This is a really, really" <<
        "really long line" << endl; 

    cout << "This is another really" <<
        "really long line" << endl; 

    cout << "This one is short" << endl;
}

五、如果一个长语句被分为多行,那么句中的操作符(比如<<)应被置于句尾,而不是开头。

cout << "This is a really, really" <<
       "really long line" << endl;

而不是

cout << "This is a really, really"
       << "really long line" << endl;

这样更容易看出两行是一个语句。

六、使用空格以使代码更容易阅读。

不易阅读

易于阅读

不易阅读

易于阅读

不易阅读

// cout and endl live in the iostream library
cout << "Hello world!" << endl;
// these comments make the code hard to read
cout << "It is very nice to meet you!" << endl;
// especially when all bunched together
cout << "Yeah!" << endl;

易于阅读

// cout and endl live in the iostream library
cout << "Hello world!" << endl;

// these comments are easier to read
cout << "It is very nice to meet you!" << endl;

// when separated by whitespace
cout << "Yeah!" << endl;

这个风格会贯穿整个教程,我们也希望它成为你的习惯。

C++给了你足够的自由来选择自己喜欢的风格,但我们仍然希望你使用上述风格,因为经过多代成千上万的程序员无数的代码检验,这个风格被证明是成功的。

转载请参看关于博客页面相关要求。

关于 “1.6空白与基本格式” 的 1 个意见

评论关闭。