文章目录
- 一. 预处理阶段对注释的处理
- 二. 注释使用时的注意事项
- 1. C风格的注释无法嵌套使用
- 2. 基本注释注意事项
- 3. 注释导致的二义性
- 四. 关于注释的一个使用建议
一. 预处理阶段对注释的处理
我们知道一个源文件要变成可执行程序的话,首先要经过预处理,预处理阶段完成的任务包括:头文件展开、宏替换、条件编译、去掉注释。
那具体是怎么去掉注释的呢?下面我们写一段包含注释的代码来测试:
#include <stdio.h>
int main()
{
int i = 10;
int j = 20;
return 0;
}
下面我们对源文件进行预处理操作:gcc -E test.c -o test.i
,生成一个叫做 test.i 的文件,打开文件可以看到预处理后的代码:
二. 注释使用时的注意事项
1. C风格的注释无法嵌套使用
下面C风格注释的使用是错误的,/*
和*/
不能嵌套使用,因为/*
总是与离它最近的*/
匹配:
#include <stdio.h>
int main()
{
*/
return 0;
}
2. 基本注释注意事项
#include <stdio.h>
int main()
{
int i;
int j;
char *s = "abcdefgh //hijklmn";
return 0;
}
3. 注释导致的二义性
下面是测试代码:
#include <stdio.h>
int main()
{
int x = 10;
int y = 0;
int *p = &y;
y = x
编译后会在这里报错y = x/*p
,因为 / 会优先与 * 结合作为一个注释符号。正确的写法应该是在 / 后面加上一个空格或者对 *p 加上一个括号。
y = x/ *p;
y = x/(*p);
四. 关于注释的一个使用建议
复杂的函数中,会有很多分支、循环的嵌套,如果它们的行数也有很多的话,我们在阅读的时候容易搞混,不知道哪个循环或分支从哪里开始或者是从哪里结束。
所以建议在分支语句、循环语句结束之后加上注释,这样方便区分各分支或循环体。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)