
1.7 添加注释
许多人在谈论如何编写高质量的代码时,都会讲到要保持代码风格一致,这样别人(或者你自己)以后查看代码时,就比较容易理解。所以,用一致的(或者说连贯的)风格来编写代码总是值得提倡的。但问题在于,有时我们没办法保持一致,因为我们确实有必要编写那种很令人费解、很隐晦、很难懂的代码,或者我们确实有必要用一种不太直观或不太应该出现的方式来编写代码。在这些情况下,我们应该给代码添加注释,这些注释不是给编译器写的,而是给我们自己,以及稍后会阅读代码的其他人写的。有了注释,我们以后在看到这段代码时,就不会挠着头皮问:“嗯?这样写到底是什么意思啊?”
代码中的注释是一种解释方式,用来描述某段代码为什么要这样写。下面我们看看在C语言的代码里面添加注释的几种形式。
注释如果违背了C语言的语法,那么编译器会报错,但注释如果写对了,那么编译器便不会根据这些注释对程序做出特别的处理,因为这些注释是写给人看的,而不是写给计算机看的。我们来观察下面几种形式的注释:


上述代码中所写的注释本身虽然没有太大意义,但却向我们展示了在C语言代码中添加注释时所能采用的各种形式。
(1)~(6)是老式写法,也就是C语言风格的写法。这些注释的规则很简单:只要发现/*这两个字符,就意味着这里有一段注释,这段注释一直延续到*/才结束,注释结束的位置可以跟开始的位置在同一行,也可以在许多行之后。注意,/*必须连写,如果中间加了一个空格,也就是写成了/*,那就不是有效的注释格式了,*/也必须连写,而不能添加空格,写成*/。
C语言还引入了C++语言的注释风格,这指的是从(7)~(10)的这几种形式。从//开始,一直到行尾(End Of Line,EOL;也叫作行末)的内容都算注释,因此,这种注释不像C语言风格注释那样可以写在代码中的任意位置,因为只要一出现//,就意味着从这里开始,一直到本行末尾全都是注释,而不像C语言风格的注释,可以通过*/标明注释的结束位置。另外,与/*和*/类似,//这两个字符也必须连写,而不能添加空格,写成/ /。
C语言风格的注释更加灵活,而C++语言风格的注释则更加醒目。这两种风格的注释都有用,本书中也都会用到。