1. 文件头注释
每个文件都应该开始于一个注释块,描述文件的目的、作者、创建日期和版权信息。
/*
* FileName: MyClass.cpp
* Purpose: Provides functionality for XYZ operations.
* Author: [Your Name]
* Creation Date: YYYY-MM-DD
* Last Updated: YYYY-MM-DD
* Copyright: [Your Organization/Your Name, Year]
*/
2. 类和结构注释
每个类或结构体定义前都应该有注释描述其目的和主要功能。
/**
* MyClass - A class that represents XYZ.
* This class provides functionalities A, B, and C.
*/
class MyClass {
...
};
3. 函数和方法注释
函数或方法应该有注释描述它的目的、参数、返回值和可能的异常。
/**
* Calculates the average of two numbers.
*
* @param a_ First number.
* @param b_ Second number.
* @return The average of the two numbers.
* @throw DivisionByZeroException If b is zero.
*/
double calculateAverage(double a_, double b_);
4. 变量注释
重要的类成员变量或全局变量应该有简短的注释描述其目的。
int _counter; // Counts the number of XYZ events.
5. 代码块和逻辑注释
复杂的代码块或具有特殊逻辑的部分应该有注释进行说明。
// Loop through each item and update the counter
for(int i = 0; i < size; ++i) {
...
}
6. TODO 和 FIXME
对于暂时未完成或需要修复的代码,应使用 TODO
和 FIXME
标记。
// TODO: Implement this feature in the next version.
// FIXME: This code sometimes throws an exception.
7. 分隔注释
对于长的文件或函数,使用注释分隔器可以帮助提高可读性。
//-----------------------
// Section: Initialization
//-----------------------
...
//---------------------
// Section: Computation
//---------------------
8. 保持注释的简洁性和相关性
避免冗长和不必要的注释。注释应该简短且与代码紧密相关。
9. 保持注释的准确性
当更改代码时,确保相应的注释也得到更新。过时或误导性的注释可能比没有注释更糟糕。
10. 使用工具生成文档
考虑使用如Doxygen这样的工具,该工具可以从注释中自动生成代码文档。
总结,良好的注释风格不仅可以帮助其他开发者快速理解和维护代码,而且对于编写代码的人自己也是有益的,特别是在项目周期长或在一段时间后回到该代码时。