深入理解C代码中的注释
来源:互联网 发布:中国程序员网 编辑:程序博客网 时间:2024/06/06 05:31
深入理解C代码中的注释
C 语言的注释可以出现在C 语言代码的任何地方?错!我们就看看下面的例子:
A) int/*...*/i;
B) char* s="abcdefgh //hijklmn";
C) //Is it a \ valid comment?
D) in/*…*/t i;
C 语言里可以有两种注释方式:/* */ 和//。上述前3条注释都是正确的,最后一条不正确。
1)A)来说有人认为编译器剔除掉注释后代码会被解析成inti,所以不正确。编译器的确会将注释剔除,但不是简单的剔除,而是用空格代替原来的注释。
2)B) 我们知道双引号引起来的都是字符串常量,那双斜杠也不例外。
3)C)这是一条合法的注释,因为\是一个接续符即表示断行,编译器会将反斜杠剔除掉,跟在反斜杠后面的字符自动接续到前一行。但是注意:反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格。
4)D) 前面说过注释会被空格替换
5)/*…*/这种形式的注释不能嵌套,如: /*这是/*非法的*/*/因为/*总是与离它最近的*/匹配。
6)y = x/*p,这是表示x 除以p 指向的内存里的值,把结果赋值为y?编译器提示出错。实际上,编译器把/*当作是一段注释的开始,把/*后面的内容都当作注释内容,直到出现*/为止。这个表达式其实只是表示把x 的值赋给y,/*后面的内容都当作注释。但是,由于没有找到*/,所以提示出错。
我们可以把上面的表达式修改一下: y = x/ *p 或者 y = x/(*p) 这样的话,表达式的意思就是x 除以p 指向的内存里的值,把结果赋值为y 了。也就是说只要斜杠(/)和星号(*)之间没有空格,都会被当作注释的开始。这一点一定要注意。
C 语言的注释可以出现在C 语言代码的任何地方?错!我们就看看下面的例子:
A) int/*...*/i;
B) char* s="abcdefgh //hijklmn";
C) //Is it a \ valid comment?
D) in/*…*/t i;
C 语言里可以有两种注释方式:/* */ 和//。上述前3条注释都是正确的,最后一条不正确。
1)A)来说有人认为编译器剔除掉注释后代码会被解析成inti,所以不正确。编译器的确会将注释剔除,但不是简单的剔除,而是用空格代替原来的注释。
2)B) 我们知道双引号引起来的都是字符串常量,那双斜杠也不例外。
3)C)这是一条合法的注释,因为\是一个接续符即表示断行,编译器会将反斜杠剔除掉,跟在反斜杠后面的字符自动接续到前一行。但是注意:反斜杠之后不能有空格,反斜杠的下一行之前也不能有空格。
4)D) 前面说过注释会被空格替换
5)/*…*/这种形式的注释不能嵌套,如: /*这是/*非法的*/*/因为/*总是与离它最近的*/匹配。
6)y = x/*p,这是表示x 除以p 指向的内存里的值,把结果赋值为y?编译器提示出错。实际上,编译器把/*当作是一段注释的开始,把/*后面的内容都当作注释内容,直到出现*/为止。这个表达式其实只是表示把x 的值赋给y,/*后面的内容都当作注释。但是,由于没有找到*/,所以提示出错。
我们可以把上面的表达式修改一下: y = x/ *p 或者 y = x/(*p) 这样的话,表达式的意思就是x 除以p 指向的内存里的值,把结果赋值为y 了。也就是说只要斜杠(/)和星号(*)之间没有空格,都会被当作注释的开始。这一点一定要注意。
阅读全文
0 0
- 深入理解C代码中的注释
- 去掉c代码中的注释[转]
- 将C/C++代码中的注释删除
- 去除c/c++代码中的注释
- 去除c/c++代码中的注释
- c语言实现去除代码中的注释
- 深入理解C语言中的free函数。
- 深入理解C语言中的移位运算
- 深入理解C语言中的const
- 深入理解Objective-C中的对象
- 深入理解C语言中的移位运算
- C语言中的流程控制深入理解
- 深入理解C中的数组指针
- tensorflow:深入mnist代码注释
- 深入理解C语言中的.h文件和.c文件
- [C++]项目中的代码注释规范(整理)
- 编写程序将C / C++代码中的注释去掉
- 删除代码中的注释
- 命令代换
- oracle——监听(三、监听配置)
- 【linux】读文件
- 从数据恢复角度出发 python解释NTFS runlist的代码
- $(function(){})和$(document).ready(function(){})
- 深入理解C代码中的注释
- 生存危机——我的工作会不会被机器取代
- 更换jdk版本:jdk1.8更换为jdk1.7之后输入java -version还是出现1.8的版本号
- git 笔记
- Greenplum简明手册
- 误人子弟篇之C语言函数返回值与参数传递
- call structure
- java-包
- 原生js实现银行卡号每隔4位数字加一个空格案例