3.2 C程序的注释

代码3-1出现最多的是“/*”和“*/”包裹起来的中文语句,这些是注释。注释是用来帮助程序员阅读源代码和理解源代码的。编译器在编译源代码的时候,在目标代码生成以前,会把注释剔除掉,然后再进行编译。当然编译器是不会修改源文件的,这一切是在内存中完成。由于对于注释部分忽略不处理,就如同没有这些字符一样,所以注释不会增加编译后的程序的可执行代码长度,对程序运行不起任何作用。

对于注释,有以下几点说明:

(1)C语言的注释只有一种形式,就是以“/*”开始、以“*/”结束的注释对。

(2)编译器将“/*”与“*/”之间的任何文字,如代码、标点符号、制表符、换行等都当作注释不予以处理。例如:

/*这段注释里 含有空格*/
/*这段注释里         含有制表符*/
/*这段注释里有换
行*/
/*这
段
注
释
很
长
跨
越
很
多
行
*/

(3)注释可以放在任何地方。通常,把注释置于要描述的代码段之前比较合适,而将变量的用途注释则放在变量定义后面。

/*本变量的用途是记录学生人数*/
int i_numbers;
int i_numbers /*学生人数*/
int x, /*这段注释在代码之中*/ y;

注意 最后一行注释处于代码int x和y之间,这也是容许的。

(4)注释和代码一定要同步更新。代码修改而注释不做改变,这样的事情在实际开发中经常看见,而这样的情况可能会带来严重不良后果。

(5)注意注释的起始和结束对,在“/*”、“*/”两个字符之间是没有空格的。如果出现空格,如“/ *”,“* /”,则不是注释了。

(6)注释内部不能再出现注释对。如:

/*这是一个注释起始。/*又出现一个注释起始*/嵌套的注释结束*/
/*这是一个注释起始。*/再出现一个注释结束*/

解决这种嵌套注释的方法,就是在内层“/*”或者“*/”之间添加空格。

留给读者一个问题:“/**”、“//*”、“**/”哪些可以构成注释,哪些不能构成注释呢?

(7)适量而恰当的注释是良好编程风格的重要体现,是一种程序规范,可以用来概括程序的算法、标识变量和函数的意义,或者解释一段代码的意图。但是在代码中混杂过多的注释也许会使得程序更难于理解。如下的代码片段用了过多的注释,反而影响了代码的阅读。

/*定义长方形的长和宽*/
/*在计算面积的时候*/
/*需要使用长和宽*/
/*在计算周长的时候*/
/*也需要长和宽*/
/*如果长和宽相同*/
/*则此长方形就是一个正方形*/
int i_height, i_weight;