computer:c:tips:comment
注释(Comment)
C有两种注释方法:
- 传统的方式,即从/*开始,到*/的第一次出现结束。
- C99开始引入第二种方式,即从//开始,到本行末尾(不包括行结束符)。这种新的注释方式可能会导致旧代码出现兼容问题,不是很建议使用。
在字符串和字符常量以及其他注释里的注释不被识别。如下面的代码中不含注释:
printf("%d //squared// is %d\n", i, i * i);
注释在预处理(Preprocessing)之前就删除了,所以在注释里的预处理命令不会被识别。
标准C规定,编译时整个注释被替换为一个空格字符(Space)。因而,注释也算空白字符(Whitespace)的一种。
根据上述的替换规则,注释中间的行结束符不会中断预处理命令。比如,下面两条指令是等价的:
#define ten (2 * 5) #define ten /* ten one greater than nine */ (2 * 5)
有些非标准的实现允许使用嵌套的注释,即/*…*/之间还可以有/*和*/,只要配对就行,这种不标准的做法不应该使用。出现此类嵌套的场合,多半是为了注释掉一块代码,而代码中间之前已经存在注释了。要达到这个目的,合理的做法是使用预处理命令而不是注释。如:
#if 0 int page_queue_congested(struct page *page) { ... ... /* It pins the swap_info_struct */ ... ... #endif
computer/c/tips/comment.txt · 最后更改: 2014/11/01 02:02 由 127.0.0.1