今天顺手谈谈注释的问题。
对于一段代码或者一个大工程,如果说没有注释,写的程序只有自己懂得。假如有一天,你的工程或者你的代码给别人修改,没有相应的注释。这会使人奔溃,人家可能要花很长的时间来慢慢解读,这是大大浪费时间,时间就是金钱啊。所以一段代码或者一个工程,注释起很大的作用。不多说,直接开门见山。
第一种方法:(两个斜杆)/ /
相信大家接触都是以这种方式去注释,举个例子:
#include <stdio.h>
int main(void)
{
printf("语句1\n");//注释
printf("语句2\n");
// printf("语句3\n");
printf("语句4\n");
return 0 ;
}
但是这种方式只能适用几行代码的注释,如果说面对100行、1000行等代码注释,那岂不是累死人。当你想注释一大串代码时,可能你会马上想到第二种方法。
第二种方法:()/ * * /
比如说这样子:
#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");
return 0 ;
}
这个确实很方便,但是问题来了,这个注释方式是不能嵌套的,可能自己的小程序小工程没有感觉,但是面对大工程来说,在你使用/ * * /时候,中间也有存在/ * * /这样 的注释,结果会引发一系列的错误。举个例子。
编译器不会那么只能,它只会寻找与离 / * 最近的 */去配对,它不管后面的如何如何。所以这也是它的缺点。
第三种方法:使用预处理形式 #if 0 #endif
对于一大串代码的注释,我个人比较推荐使用这个方式,因为这种方式可以避开上面的缺陷。用例子说话。
#if 0与#endif 之间的代码就会被注释掉。
所以我们可以根据第三种方法进行扩展学习
顺便介绍给大家:
在C语言中我们也会用到#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");永远没有办法被执行。如下
#include <stdio.h>
int main(void)
{
#if 0
printf("语句1\n");
#else
printf("语句2\n");
#endif
return 0 ;
}
========================================================================================================================================================================================================有天我在调试的发现,预处理也可以这样使用
例子1:
#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 ;
}
例子2:
#include <stdio.h>
int main(void)
{
#if 1
printf("语句1\n");
#if 0
printf("语句2\n");
#if 1
printf("语句3\n");
#if 1
printf("语句4\n");
#if 1
printf("语句n\n");
#endif
#endif
#endif
#endif
#if 1
printf("语句5\n");
#endif
#if 0
printf("语句6\n");
#endif
printf("语句7\n");
#endif
return 0 ;
}
所以,每一 #if 0 或者#if 1 都是要有一个#endif 去匹配,少一个也不行,而且也是按照就近原则的方式去匹配。这类似于像嵌套,读者可以根据上面的例子去思考或者研究。
有不足之处,欢迎多多交流,欢迎评论。