响水凹

欢迎来到 Guang-Wen Duan (Dennis Duan) 的个人 Wiki

用户工具

站点工具


computer:c:tips:comment

注释(Comment)

C有两种注释方法:

  1. 传统的方式,即从/*开始,到*/的第一次出现结束。
  2. 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