C语言中的3种注释方法
最佳答案 问答题库508位专家为你答疑解惑
C语言中的3种注释方法
2021年8月28日星期六·席锦
在用C语言编程时,常用的注释方式有如下几种:
(1)单行注释 // …
(2)多行注释 /* … */
(3)条件编译注释 #if 0…#endif
(1)(2)在入门教程中比较常见。
对于(1) 【单行注释 // …】,注释只能显示在一行内,通常出现在一条语句的右边或者上方,对于注释符【//】,一个注释里只要有多于2个【/】都可以,例如:
#include <stdio.h>
int main(void)
{
此处四个/仍能成功编译通过,因为//后面和它在同一行的//的内容均为注释内容
printf("语句1\n"); 注释
printf("语句2\n");
// printf("语句3\n");
printf("语句4\n");
return 0 ;
}
运行截图如下:
但是(1) 【单行注释 // …】只能适用几行代码的注释,如果说面对100行、1000行等代码注释,那岂不是累死人。当你想注释一大串代码时,可能你会马上想到(2)【多行注释 /* … */】。
对于(2)【多行注释 /* … */】,不能嵌套使用,正如【if…else】中的【else】总是和离它最近的【if】配对一样,【/*】总是和离它最近的【*/】相配对。例如:
#include <stdio.h>
int main(void)
{
printf("语句1\n");
printf("语句2\n");
printf("语句3\n");
/*
printf("语句4\n");
printf("语句5\n");
printf("语句6\n");
printf("语句7\n");
*/
printf("语句8\n");
// /*printf("语句9\n");/*示范嵌套注释的错误,打开本行头部的//,将编译失败*/*/
return 0 ;
}
运行截图如下:
(2)【多行注释 /* … */】确实很方便,但是问题来了,这个注释方式是不能嵌套的,可能自己的小程序小工程没有感觉,但是面对大工程来说,在使用【/* … */】时候,中间也有存在【/* … */】这样的注释,结果会引发一系列的错误。这个注释方式不能查看代码格式和高亮显示关键字的,不利于阅读和调试代码。
针对(1)【单行注释 // …】和(2)【多行注释 /* … */】各自的缺陷,资深的程序员提出(3)【条件编译注释 #if 0…#endif】,该注释的好处是能注释大块的程序,并且没有嵌套的限制,也就是说在【#if 0…#endif】的【…】处可以有【//】或【/* … */】这样的注释,也能保持代码的格式和高亮显示。例如:
#include <stdio.h>
int main(void)
{
printf("语句1\n");
printf("语句2\n");
#if 0
printf("语句3\n");
printf("语句4\n");
// printf("语句5\n");
/*
printf("语句6\n");
printf("语句7\n");
*/
#endif
printf("语句8\n");
return 0 ;
}
【#if 0】与【#endif】之间的代码会被注释掉。对于使用【#if 0…#endif】的开发者,在他想恢复该代码段时,只需要将【#if 0】改成【#if 1】即可,这种注释非常适合于代码的调试和测试。【#if 0】改成【#if 1】后的运行结果如下图:
【#if 0】运行结果
【#if 1】运行结果
根据(3)【条件编译注释 #if 0…#endif】进行扩展学习。
【#if 0,#else,#endif 语句 】或【#if 1,#else,#endif语句】,例如:
#include <stdio.h>
int main(void)
{
#if 1
printf("语句1\n");
#else
printf("语句2\n");
#endif
return 0 ;
}
此时printf("语句2\n");的语句被注释掉了,永远没有办法执行,而printf("语句1\n");是被编译的;
如果将【#if 1】变为【#if 0】,printf("语句2\n");被编译,而printf("语句1\n");永远没有办法被执行。
运行截图如下:
【#if 1】运行结果 【#if 0】运行结果
预处理嵌套使用,例如:
#include <stdio.h>
int main(void)
{
#if 1
printf("语句1\n");
#if 0
printf("语句2\n");
#endif
#if 1
printf("语句3\n");
#endif
#if 0
printf("语句4\n");
#endif
#endif
return 0 ;
}
运行截图如下:
每一【#if 0】或者【#if 1】都是要有一个【#endif】去匹配,少一个也不行,而且也是按照就近原则的方式去匹配。
预处理也可以使用【#if…#elif…#else…#endif】(类似于if() {}else if() {}else {}),例如:
#include <stdio.h>
#define a 2
int main(void)
{
#if (0==a) // 条件值要在预编译阶段就能确定的值,不能时运行时才能确定的值
printf("语句1\n");
#elif (1==a)
printf("语句2\n");
#elif (2==a)
printf("语句3\n");
#else
printf("语句4\n");
#endif
return 0 ;
}
运行截图如下:
条件值要在预编译阶段就能确定的值,不能时运行时才能确定的值
另有如下几点值得C语言程序员注意:
(1)注释并不是可以出现在程序的任何地方
(2)合理的注释通常出现在一条语句的上方或者右边,不应出现在一条语句或者一个程序段的后面。
99%的人还看了
相似问题
- JavaScript基础—for语句、循环嵌套、数组、冒泡排序、综合案例—根据数据生成柱形图
- P6 C++控制流语句(continue, break, return)
- (二)汇编语句组成
- MATLAB 嵌套switch语句||MATLAB while循环
- ⑩⑤【DB】详解MySQL存储过程:变量、游标、存储函数、循环,判断语句、参数传递..
- 事关Django的静态资源目录设置(Django的setting.py中的三句静态资源(static)目录设置语句分别是什么作用?)
- Python基础入门例程55-NP55 2的次方数(循环语句)
- JavaScript条件分支语句-if 语句
- 【Python基础】try-finally语句和with语句
- if,switch语句
猜你感兴趣
版权申明
本文"C语言中的3种注释方法":http://eshow365.cn/6-20134-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!