今天想带大家来了解一下注释,当然,是c语言中的注释,这个大家都并不会感到陌生,但是,当有一天面试官问你?小伙子啊,你能给我讲讲什么是注释吗?大家应该都会懵的吧,毕竟注释有什么可讲的呢?但是事实真的如此吗?今天就由我来带大家了解一下注释吧!
首先来几段注释的例子大家来判断下对错(从语法角度和是否实现注释的效果来看)
#include <stdio.h>int main(){int /* */ i; char* s = "abcdefgh //hijklmn";//is it a\valid comment? in/* */t j; return 0;}
当大家把这段代码放在vs上去运行的时候,报错的代码只有最后一行代码,即in/* */t j;我们就知道这行代码是有语法错误的,那么其它的代码就完全没有问题了吗?当然,其它的代码没有了语法错误,但是它们的注释效果真正实现了吗?
补充知识:注释被替换是在预处理阶段实现的,注释被替换,本质是替换成空格,上述报错的那一句本质上应该是 in t i;编译器自然会报错,报错是在预处理阶段进行语法检查时出错的,出现了语法错误。
这个是编译器上的标识图,上面的几行代码虽然贵州护理职业技术学院没有报语法错误,但是有英语不定式的代码却没有真正实现其注释的效果,下面我们将一行一行的带大家来进行分析!
首先看第一行:int /* */ i;经过替换后。中间的转换为空格,可见并没有语法错误,且能够达到注释的目的。
接下来看第二行代码,这个地方大家可能会感到疑惑了,我命名加了注释符的啊,但是为什么没有达到我想要的效果呢?这个地方开业典礼的原因是因为//是在字符串中,此时的第一个/被理解成了转义字符,而第二个则真正被理解成了/,至于为什么第二个/没有被理解成转义字符呢?因为第一个/防止了后面的字母被转义,所以后免的一个/才没有被理解成是转义字符,好像扯的有点远了。这个地方需要告诉大家的是在字符串中是无法进行注释的,因为在字符串中的/有特殊的含义!
有的朋友就好奇了,既然c++风格的注释行不通,那么c语言的风格能否行得通呢?答案是不能,下面给大家证明一下吧!
很明显,依旧没有成功行注释,原因同上。
接下来来看第三行代码,我们可以得出一个结论,c++风格的注释是可以续行的!
/*这是*/#/*一条*/define/*合法的*/id/*预处理*/replacement/*指*/list/*令*///这段代码指的就是用replacement list替换id
当这段代码放到vs上是这样的:
上述两段代码都能编译通过,这说明# 和 define之间可以带空格。(因为注释最终要被空格所代替)
//是c++风格的注释,而/* */则是c语言风格的注释,前者可以一次写多个,不过从第一个//往后就都是注释的内容。
/*/**/*/
这段代码在vs中是下面这样的:
注意:/* */不能嵌套注释。/*总是和离它最近的*/进行匹配。
在这段代码中,最终第一行和第三行中的*/进行匹配,剩下最后一个*/没有与之进行配对的。
int x = 10 ;int y = 10;int z = 5;int *p = &z;y = x/*p;
上面这种代码一定要注意,乍一看没有什么问题,但是接下来我们放到编译器上看一下:
这种代码一定要注意,/*容易被编译器认为是注释,所以会报错。
解决方案有两种:
1.y = x / *p;即在/后面加一个空格,不要让/*连在一起。
2.y = x/(*p);(推荐用第二种)。
#include &l文章声明t;stdio.h>#include <windows.h>#define money 1(只有定义了前面的宏,ifdef到endif中间的这段代码才能够正常运行,未定义则跳过)int main(){#ifdef moneyprintf("for test1\n"); //test1printf("for test2\n"); //test2#endifsystem("pau");return 0;}
可以通过if(0)来进行注释,但并不推荐。
到此这篇关于c++代码各种注释示例详解的文章就介绍到这了,更多相关c++代码注释内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!
本文发布于:2023-04-04 01:20:29,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/949834fecb7c2dbd776fd2fb0c5f4b9e.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:c++代码各种注释示例详解.doc
本文 PDF 下载地址:c++代码各种注释示例详解.pdf
留言与评论(共有 0 条评论) |