C++ 文件注释常见规范
一、文件头部注释
核心内容
- 版权声明 :明确代码的版权归属(如
Copyright (C) [公司 / 作者名])。 - 作者信息 :标注主要贡献者(
@author 或 Author)。 - 日期与版本 :记录创建或修改日期(
@date),以及版本号(@version)。 - 功能描述 :简述文件的核心功能(
@brief 或 Description)。
示例
格式要求
- 多行注释使用
/*! */ 或 /** */(支持 Doxygen 解析)。 - 每行不超过 80 字符,保持可读性。
二、函数注释规范
关键标签
- 功能说明 :
@brief 描述函数作用。 - 参数说明 :
@param 解释每个参数的意义及约束。 - 返回值 :
@return 或 @retval 说明返回值的含义(如错误码解析)。 - 异常信息 :
@exception 列出可能抛出的异常。
示例
int add(int a, int b) {
return a + b;
}
格式要求
- 函数注释紧邻函数定义上方,使用
/** */ 或 /// 风格。
三、代码块与行内注释
行内注释
- 单行注释以
// 开头,置于代码行尾或上方,解释简短逻辑。
示例
int x = 10;
多行注释
- 复杂逻辑使用
/* */ 包裹,置于代码块上方,解释整体逻辑或算法。
示例
void quickSort(int arr[], int low, int high) { ... }
预处理注释
- 使用
#if 0 ... #endif 临时禁用代码块,便于调试与版本控制。
四、命名空间与类注释
命名空间
示例
namespace DataUtils { ... }
类与结构体
示例
class Point { ... };
五、其他规范
- Doxygen 兼容性 :遵循 Doxygen 标签语法(如
@ 符号),便于生成 API 文档。 - 注释风格选择 :项目统一使用
// 或 /* */,优先 C++ 风格(//)。 - 禁用冗余注释 :避免对自解释代码(如
i++)添加无意义注释。
完整注释示例
namespace MathUtils {
int factorial(int n) {
if (n < 0) throw std::invalid_argument("n must be non-negative");
return (n <= 1) ? 1 : n * factorial(n - 1);
}
}