章节目录

注释

本节阅读量:

注释是程序的笔记,不会被编译器编译,用来记录程序相关信息,作为程序的文档。。

C++有两种相同功能类型注释


单行注释

使用「//」做单行注释。一行代码中,「//」后面的内容会被编译器忽略。

1
std::cout << "Hello world"; // 这里的所有内容都不会被编译

单行注释用来对单行代码简单说明。

1
2
3
std::cout << "Hello world\n"; // std::cout是iostream库中的功能
std::cout << "长长长长长长长长长长长长长长长长长长长长长\n"; // 这类注释使代码不容易阅读
std::cout << "短短短\n"; // 尤其代码有长有短

代码较长时,在代码后注释,会使代码与评论不方便阅读。 如果代码较短,可将注释对齐,如下

1
2
3
std::cout << "Hello world\n"; // std::cout是iostream库中的功能
std::cout << "Aa\n";          // 这样的注释
std::cout << "Bb\n";          // 容易阅读

代码较长时,可将注释放到代码前一行

1
2
3
4
5
6
7
8
// std::cout是iostream库中的功能
std::cout << "Hello world\n";

// 这样的注释
std::cout << "长长长长长长长长长长长长长长长长长长长长长\n";

// 容易阅读ß
std::cout << "短短短\n";

上面是代码片段,不是完整程序,无法编译。

如果要编译代码片段,变成完整的程序,需要放在main函数中:

1
2
3
4
5
6
7
8
#include <iostream>

int main()
{
    // 将想要编译的代码片段放到这里即可,然后编译运行

    return 0;
}

多行注释

「/*」与「*/」之间的内容,也会被编译器忽略。

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

有时为了美观,会在每行前都加上「*」。

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

多行注释无法嵌套使用,如下例子中,会有未预期的结果

1
2
/* 这是多行注释 /* 注释 */ 这里已经不在注释中 */
// 上一行的注释在第一个「*/」 已经结束,而不是第二个「*/」

编译器遇到上述代码片段时,忽略第一个 「/*」与第一个「*/」之前的内容。 因此,「这里已经不在注释中 */」被当作代码编译。当然这出现编译错误。

IDE的语法高亮功能,帮助我们快速发现这类问题,注释与其它代码有不同的颜色,很容易区分。


注释使用原则

注释帮助第一次阅读代码的人理解程序逻辑。可能有人会说“我自己的代码,只有自己用,不用写注释”。 但是可能不用几天,就会忘掉自己当时的思路,这时再看自己的代码,就如同第一次阅读别人的代码。

使用注释,有三个原则。

  1. 在程序,库或函数前,使用注释描述代码的用途。
1
2
3
// 本程序用来计算班级中学生成绩的排名

// 本函数使用牛顿法来求数据的平方根

通过注释,使用代码的人不必阅读代码,就知道对应代码实现的功能。 大大提高代码复用效率,尤其在多人协作编程时。

  1. 在库或函数里,描述代码如何实现所需功能。
1
2
3
4
5
6
7
8
9
/* 为得到期末成绩
   将期中成绩,作业及考试成绩
   按比率求和 */

// 从一堆号码中随机抽一个
// 1. 将所有的号码放到一个数组中
// 2. 生成一个随机数
// 3. 计算出这个随机数对应的数组的位置
// 4. 返回数组中对应的元素

上面注释,能快速了解代码实现功能,不用看每一行代码。

  1. 语句层面,描述为什么代码这么写。

注释不必描述代码行为。就如同下面的例子。

坏注释:

1
2
// 将score的值设置为0
score = 0;

原因:不看注释,也知道语句的行为

好注释:

1
2
// 每一局比赛开始时,分数清零
score = 0;

原因:知道为什么score设置为0


注释代码

调试或调整代码时,有时会让一行或多行代码不编译。 这时,把这些代码放到注释里。

例如,原始程序是这样:

1
2
3
std::cout << 1;
std::cout << 2;
std::cout << 3;

使用如下注释,这几行代码不会被编译:

1
2
3
4
5
6
7
8
9
// std::cout << 1;
// std::cout << 2;
// std::cout << 3;

/*
 * std::cout << 1;
 * std::cout << 2;
 * std::cout << 3;
 */

1.0 程序结构介绍

上一节

1.2 对象与变量

下一节