零基础趣学C语言
上QQ阅读APP看书,第一时间看更新

2.4 注释

C语言中允许使用(双斜线)//注释一行代码,使用/ * * /注释多行代码,被注释的代码会被编译器忽略。

注释的作用主要有以下两点。

(1)方便自己和他人理解这段代码。

(2)屏蔽无用的代码,经常用于调试程序,缩小错误范围。

2.4.1 行注释

行注释又被称为单行注释,顾名思义只能注释一行。在程序中,行注释以//开始,后面的内容都会被编译器忽略。

下面通过例子来了解单行注释的使用。

【示例2-17】 行注释。

1 #include<stdio.h>

2 int main()

3 {

4 printf("www.rupeng.com");

5 //printf("如鹏网\n");

6  getchar();

7 return 0;

8 }

运行结果如图2-24所示。

图2-24 运行结果

【程序分析】

根据输出结果可以看到,第4行与第5行//之后的内容被编译器忽略,输出结果为第4行程序中双引号间的内容。

2.4.2 块注释

块注释又被称为多行注释,/ *表示注释开始,* /表示注释结束,/ *与* /之前的内容将被编译器忽略。

【示例2-18】 块注释。

01 #include<stdio.h>

02 int main()

03 {

04   printf("如鹏网");

05   / *

06   printf("www.rupeng.com");

07   printf("www.rupeng.com");

08   printf("www.rupeng.com");

09   * /

10   getchar();

11   return 0;

12 }

运行结果如图2-25所示。

图2-25 运行结果

【程序分析】

上述程序中,第5行中的/ *代表块注释开始,第9行中的* /表示块注释结束,/ *与* /之间的内容(第5~9行)将被编译器当作注释忽略掉。

小贴士

块注释不能嵌套定义。

【出错代码】

01 #include<stdio.h>

02 int main()

03 {

04   printf("如鹏网");

05   / *

06   printf("www.rupeng.com");

07   / *

08   printf("www.rupeng.com");

09   * /

10   printf("www.rupeng.com");

11   * /

12   getchar();

13   return 0;

14 }

【出错信息】如图2-26所示。

图2-26 错误信息

【错误分析】

1.C语言编译器解析块注释时,将第一个读取到的/ *当作块注释开始,后面出现的/ *都统一被当作块注释的内容对待,直到读取到第一个* /认为是块注释结束,后面出现的* /会被当作下一个块注释对待。

2.C语言中规定,块注释必须成对出现,并且以/ *开始,* /结束。上述程序中,第5行/ *与第9行* /是一对块注释,第11行 * /是单独出现的,不符合语法,因此编译会报错。

【解决方案】

为了避免这种错误,在实际开发中,一般不要使用块注释嵌套。尽量像【示例2-18】一样,使用一层块注释即可。