C语言中有单行注释(//
)和多行注释(/*....*/
)。
关于C语言中的注释,需要注意如下几点:
- 编译器在编译过程中使用空格替换整个注释
- 字符串字面量中的
//
和/*....*/
不能代表注释符号 /*....*/
多行注释不能被嵌套
初探注释规则
#include <stdio.h>
int main()
{
int/*...*/i;
char* s = "abcdefgh //hijklmn";
//Is it a \
valid comment?
in/*...*/t i;
return 0;
}
编译结果:
有趣的问题
y=x/*p
代表什么意思?
本意:把x除以*p
的结果赋值给y。
编译器:将/*
作为一段注释的开始,把/*
后的内容都当成注释内容,直到*/
为止。
在编译器看来,注释和其他程序元素是平等的,因此作为工程师不能轻视注释。
#include <stdio.h>
int main()
{
int y = 1;
int x = 2;
int *p =&x;
y = x/*p;
return 0;
}
上面这段代码能编译过吗?
C语言注释编写规则
- 注释应该准确易懂,防止二义性,错误的注释有害无利
- 注释是对代码的提示,避免臃肿和喧宾夺主
- 一目了然的代码避免加注释
- 不要用缩写来注释代码,这样可能产生误解
- 注释用于阐述原因和意图而不是描述程序的运行过程