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】一样,使用一层块注释即可。