
大家都知道C语言中的/* */注释,这种注释有什么致命的问题?
3个回答
展开全部
/*……*/,这种注释是C语言程序中对一大段连续的程序段进行注释的标记符,在规范的C程序中也常常用来标示版权、著作者、调试运行信息、函数输入输出变量等,但都是利用其注释的作用。另外,很多程序员善于利用它的注释作用将某特定的程序段注释掉(不编译),来对程序进行调试。对单独或者小段的程序段加以注解时使用“//”更快捷方便。
注释,形象的说就像给程序蒙上一层隐身衣,使程序编译器看不到它,但我们程序员可以看见。在程序编译成为机器可识别的二进制代码时,是不会对其内容进行操作的,被注释的内容不会被编译。
使用/**/来进行注释的问题是显而易见的,因为它需要一个 /* 和一个 */ 一一对应,不允许嵌套和包含(如果无意间形成了包含,只有最外层的符号产生作用),类似于{ },而后者在很多代码编辑软件中是可以检测到是否配对的,也可以显示出其明显的嵌套关系。但是注释符号不会被检测出来,它们是否一一对应不得而知,因而是否有包含、遗漏、错误等等也都难以发现。如果某个程序段中因为程序员的调试过程中偶然注释失误,可能让程序段多出来一些或者少了一些程序段,从而导致未知的错误。
推荐一本经典的书《C语言陷阱和缺陷》,在百度上都有PDF的可看。很多问题都可以在里面找到答案。
一个字一个字敲上去的,希望能对你有所帮助。
注释,形象的说就像给程序蒙上一层隐身衣,使程序编译器看不到它,但我们程序员可以看见。在程序编译成为机器可识别的二进制代码时,是不会对其内容进行操作的,被注释的内容不会被编译。
使用/**/来进行注释的问题是显而易见的,因为它需要一个 /* 和一个 */ 一一对应,不允许嵌套和包含(如果无意间形成了包含,只有最外层的符号产生作用),类似于{ },而后者在很多代码编辑软件中是可以检测到是否配对的,也可以显示出其明显的嵌套关系。但是注释符号不会被检测出来,它们是否一一对应不得而知,因而是否有包含、遗漏、错误等等也都难以发现。如果某个程序段中因为程序员的调试过程中偶然注释失误,可能让程序段多出来一些或者少了一些程序段,从而导致未知的错误。
推荐一本经典的书《C语言陷阱和缺陷》,在百度上都有PDF的可看。很多问题都可以在里面找到答案。
一个字一个字敲上去的,希望能对你有所帮助。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询