====== 注释(Comment) ====== C有两种注释方法: - 传统的方式,即从/*开始,到*/的第一次出现结束。 - C99开始引入第二种方式,即从%%//%%开始,到本行末尾(不包括行结束符)。这种新的注释方式可能会导致旧代码出现兼容问题,不是很建议使用。 在字符串和字符常量以及其他注释里的注释不被识别。如下面的代码中不含注释: printf("%d //squared// is %d\n", i, i * i); 注释在预处理(Preprocessing)之前就删除了,所以在注释里的预处理命令不会被识别。 标准C规定,编译时整个注释被替换为**一个空格**字符(Space)。因而,注释也算[[.:whitespace|空白字符(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 {{tag>C语言}}