注释

注释

注释是直接插入到程序源代码中的程序员可读笔记,注释会被编辑器忽略,且仅供程序使用。

在C++中,有两种不同的注释样式,它们都有相同的用途:帮助程序员以某种方式记录代码。

单行注释

一个C++单行注释以//符号开头,它告诉编译器忽略从//符号到行尾的所有内容。例如:

1
std::cout << "Hello world!"; // 从这里开始到行尾的内容都被忽略

通常,单行注释用于快速注释单行代码。

1
2
3
std::cout << "Hello world!\n"; // std::cout 位于 iostream 库
std::cout << "It is very nice to meet you!\n"; // 这些注释让代码可读性变差
std::cout << "Yeah!\n"; // 尤其是每一行代码的长度不同

对行的右侧进行注释可能会使代码和注释难以阅读,尤其是在内容比较长的情况下。如果行很短,则可以简单地对齐注释(通过制表符),如下所示:

1
2
3
std::cout << "Hello world!\n";                 // std::cout lives in the iostream library
std::cout << "It is very nice to meet you!\n"; // this is much easier to read
std::cout << "Yeah!\n"; // don't you think so?

但是,如果行内容较长,则向右侧放置注释可能会使内容更长。在这种情况下,单行注释通常放在它要注释的那一行的上方:

1
2
3
4
5
6
7
8
// std::cout lives in the iostream library
std::cout << "Hello world!\n";

// this is much easier to read
std::cout << "It is very nice to meet you!\n";

// don't you think so?
std::cout << "Yeah!\n";

作者的说明

上面的陈述代表了我们第一次遇到代码片段。因为片段不是完整的程序,所以它们不能自己编译。相反,它们的存在是为了以简洁的方式展示特定的概念。

如果您想编译代码片段,则需要将其转换为完整程序才能进行编译。通常,该程序看起来像这样:

1
2
3
4
5
6
7
#include <iostream>
int main()
{
// Replace this line with the snippet of code you'd like to compile

return 0;
}

多行注释

一对//符号表示一个C语言风格的多行注释,所有在这两个符号之间的内容都会被忽略。

1
2
3
/* 这是一个多行注释。
这一行会被忽略
这一行也是。 */

正因为符号之间的所有内容都会被忽略,你有时候会看到程序员对多行注释进行了一定的“美化”:

1
2
3
4
/* 这是一个多行注释。
* 左对齐的星号
* 可以让注释更易读。
*/

多行注释不能嵌套。否则会出现不可预知的结果:

1
2
/* 这是一个多行 /* 注释 */ 这并没有在注释内 */
// 上面的注释在第一个 */ 处已经结束, 而不是第二个 */