Effective C++ 条款4:尽量使用c++风格的注释

发表于:2012-12-07 09:42

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:wangqiulin123456    来源:51Testing软件测试网采编

  旧的c注释语法在c++里还可以用,c++新发明的行尾注释语法也有其过人之处。例如下面这种情形:

if ( a > b ) {
 // int temp = a; // swap a and b
 // a = b;
 // b = temp;
}

  假设你出于某种原因要注释掉这个代码块。从软件工程的角度看,写这段代码的程序员也做得很好,他最初的代码里也写了一个注释,以解释代码在做什么。用c++形式的句法来注释掉这个程序块时,嵌在里面的最初的注释不受影响,但如果选择c风格的注释就会发生严重的错误:

if ( a > b ) {
 /* int temp = a;  /* swap a and b */
  a = b;
  b = temp;
 */
}

  请注意嵌在代码块里的注释是怎么无意间使本来想注释掉整个代码块的注释提前结束的。

  c风格的注释当然还有它存在的价值。例如,它们在c和c++编译器都要处理的头文件中是无法替代的。尽管如此,只要有可能,你最好尽量用c++风格的注释。

  值得指出的是,有些老的专门为c写的预处理程序不知道处理c++风格的注释,所以象下面这种情形时,事情就不会象预想的那样:

#define light_speedp 3e8 // m/sec (in a vacuum)

  对于不熟悉c++的预处理程序来说,行尾的注释竟然成为了宏的一部分!当然,正象条款1所说的那样,你无论如何也不会用预处理来定义常量的。

相关链接:

Effective C++ 条款1:尽量用const和inline而不用#define

Effective C++ 条款2:尽量用<iostream>而不用<stdio.h>

Effective C++ 条款3:尽量用new和delete而不用malloc和free

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号