C语言注释详解(两种注释方式)

在编写C语言源代码时,应该多使用注释,这样有助于对代码的理解。在C语言中有两种注释方式:
  • 一种是以/*开始、以*/结束的块注释(block comment);
  • 另一种是以//开始、以换行符结束的单行注释(line comment)。

可以使用/**/分隔符来标注一行内的注释,也可以标注多行的注释。例如,在下列的函数原型中,省略号的意思是 open() 函数有第三个参数,它是可选参数。注释解释了这个可选参数的用法:
int open( const char *name, int mode, … /* int permissions */ );
可以使用//插入整行的注释,或者将源代码写成两列分栏的格式,程序在左列,注释在右列:
const double pi = 3.1415926536;       // pi是—个常量

在 C99 标准中,单行注释正式加入C语言,但是大部分编译器在 C99 之前就已经开始支持这种用法。有时候,其被称作“C++风格”的注释,但实际上,其源自于C的前身 BCPL。

在引号中,如果采用/*//分隔一个字符常量或字符串字面量(string literal),它们都不会被视为注释的开始。例如,下面语句就没有注释:
printf("Comments in C begin with /* or //.\n" );
预处理器仅通过检查注释的结束符来检测注释中的字符,因此,不能嵌套块注释。然而,可以使用/**/注释包含单行注释的源代码:
/* 暂时注释掉这两行:
    const double pi = 3.1415926536;  // pi是一个常量
    area = pi * r * r;   // 计算面积
暂时注释到此 */

如果想要注释掉包含块注释的部分程序,可以使用条件预处理命令:
#if 0
  const double pi = 3.1415926536;   /* pi是一个常量      */
  area = pi * r * r ;  /* 计算面积     */
#endif
预处理器会把每个注释都替换成一个空格。因此,min/*max*/Value变成两个标记min Value