注释是编译器忽略的文本,但它对程序员很有用。 注释通常用于批注代码以供将来参考。 编译器将它们视为空白。 可以在测试中使用注释来使某些代码行处于非活动状态;但是,#if/#endif 预处理器指令在这方面表现更佳,因为你可以环绕包含注释的代码,但不能嵌套注释。
C++ 支持单行注释和多行注释。注释中的所有字符会被 C++ 编译器忽略。
C++ 注释一般有两种:
-
// - 一般用于单行注释。
-
/* … */ - 一般用于多行注释。
注释以 // 开始,直到行末为止。例如:
实例
#include <iostream>
using namespace std;
int main() {
// 这是一个注释
cout << "Hello World!";
return 0;
}
也可以放在语句后面:
实例
#include <iostream>
using namespace std;
int main()
{
cout << "Hello World!"; // 输出 Hello World!
return 0;
}
当上面的代码被编译时,编译器会忽略 // 这是一个注释 和 // 输出 Hello World!,最后会产生以下结果:
Hello World!
C++ 注释以 /* 开始,以 */ 终止。例如:
#include <iostream>
using namespace std;
int main() {
/* 这是注释 */
/* C++ 注释也可以
* 跨行
*/
cout << "Hello World!";
return 0;
}
在 /* 和 / 注释内部,// 字符没有特殊的含义。在 // 注释内,/ 和 */ 字符也没有特殊的含义。因此,您可以在一种注释内嵌套另一种注释。例如:
/* 用于输出 Hello World 的注释
cout << "Hello World"; // 输出 Hello World
*/
注意
- c风格的注释块是不能被嵌套的,但是c风格和c++风格的注释是可以互相嵌套的。
- 注释会在预处理阶段前就已经被移除,所以不能使用宏来组成注释。
例如 : #define ABC 1//123456 - 可以使用
#if 0
代码段
#endif
if(false)
{
代码段
}
优美的注释
- 为代码编写文档:一般写在源文件头部,注释一些不能通过阅读代码而得到的信息,比如该篇代码主要实现的功能,代码的版权,作者,编写日期等。
- 写在函数头的注释:注释函数实现的功能,输入参数、输出参数、返回值以及异常处理等。
- 数据结构声明的注释(包括结构体,类,枚举等):如果其命名不够充分说明该数据结构表示的内容的话,应该为该结构体添加描述性的注释,应该放在数据结构声明的上方。对于数据结构中的域都应该注释在域的右方。
总结
优秀的代码本来就是容易阅读和理解,而注释只需要提供有需要的附加信息,所以应该把重点放在如何写好代码,而不是如何添加更多的注释来说明一堆难以阅读的代码上。