注释

< cpp

注释是一种代码内文档。当被插入到程序中时,它们实际上会被编译器忽略;它们只需要被阅读源代码的人当作注记。虽然具体的文档并不是 C++ 标准的一部分,但一些工具可以解析各式注释。

语法

/* 注释 */ (1)
// 注释 (2)
1) 通称为“ C 风格”或“多行”注释。
2) 通称为“ C++ 风格”或“单行”注释。

翻译阶段 3 中,每段注释通过被替换为单个空白字符从程序中移除。

C 风格

C 风格注释通常用于注释大块的文本,也可以用于注释单行文本。要插入一个 C 风格注释,可以简单地以 /**/ 环绕文本;这样会使注释的内容被编译器忽略。尽管不是 C++ 标准的一部分, /***/ 常用于指示文档块;这是合法的,因为第二个星号简单地被当做注释的一部分。C风格注释不能被嵌套。

C++ 风格

C++ 风格注释通常用于注释单行文本;不过也可以把多个 C++ 风格注释放在一起来组成多行注释。 C++ 风格注释告诉编译器忽略 // 和换行符之间的所有内容。

注意

因为注释在预处理器阶段前已经被移除,所以宏不能用于组成注释,而且未终止的 C 风格注释不会从被 #include 的文件中漏出。

除了把代码注释掉之外,用于排除源代码的其他机制还有:

#if 0
    std::cout << "这一句不会被执行,甚至不会被编译\n";
#endif

以及

if(false) {
    std::cout << "这一句不会被执行\n";
}

示例

#include <iostream>
/* C 风格注释
能含有多行 */
/* 或只有一行 */
 
/**************
 *  你能插入任意数量的 * ,
 *  但你不能嵌套注释
 */
 
// C++ 风格注释能注释一行
 
// 或者,能将
// 它们串在一起
 
int main()
{
  // 注释在预处理前被移除,
  // 故 ABC 为 1 ,而非 1//2134 ,
  // 而 "1 hello world"将得以打印
#define ABC 1//2134
  std::cout << ABC << " hello world\n";
 
  // 下方代码不会运行
  // return 1;
 
  // 下方代码会运行
  return 0;
}

输出:

1 hello world

参阅