目录
- 什么是 C++ 注释?
- 单行注释 (
//
) - 多行注释 (
/* */
) - 文档注释(Doxygen 格式)
- 代码注释的最佳实践
- 参考资料
1. 什么是 C++ 注释?
注释(Comments) 是程序中的非执行代码,用于解释代码的功能、逻辑或用途,以提高代码的可读性。C++ 提供了单行注释、多行注释和文档注释三种方式。
2. 单行注释 (//
)
单行注释用于对单行代码进行解释,使用 //
开头,后面的内容不会被编译。
示例:
#include <iostream>
int main() {
// 输出 "Hello, World!"
std::cout << "Hello, World!" << std::endl;
return 0; // 返回 0 表示程序执行成功
}
说明:
// 输出 "Hello, World!"
解释了std::cout
语句的作用。// 返回 0 表示程序执行成功
说明return 0;
的意义。
3. 多行注释 (/* */
)
多行注释用于注释多行代码,在 /*
和 */
之间的内容都会被忽略。
示例:
#include <iostream>
int main() {
/* 这个程序用于输出 "Hello, World!"
使用 std::cout 进行标准输出 */
std::cout << "Hello, World!" << std::endl;
/*
这段代码演示了 C++ 的多行注释
return 0; 表示程序成功执行
*/
return 0;
}
注意:
/*
开头,*/
结尾,内部的所有内容都会被忽略。- 多行注释可以用于屏蔽代码,例如:
/* int a = 10; std::cout << a; // 这段代码不会被执行 */
4. 文档注释(Doxygen 格式)
在大型项目中,使用 Doxygen 进行自动化文档生成是一个最佳实践。Doxygen 提供的文档注释通常用于描述函数、类、变量等。
基本格式
/**
* @brief 计算两个数的和
* @param a 第一个整数
* @param b 第二个整数
* @return 两数之和
*/
int add(int a, int b) {
return a + b;
}
示例
#include <iostream>
/**
* @class Car
* @brief 代表汽车类
*/
class Car {
public:
/**
* @brief 启动汽车
*/
void start() {
std::cout << "Car is starting..." << std::endl;
}
};
int main() {
Car myCar;
myCar.start();
return 0;
}
常见 Doxygen 注释标签
标记 | 作用 |
---|---|
@brief | 简要说明 |
@param | 说明函数参数 |
@return | 说明返回值 |
@class | 说明类 |
如何生成文档?
- 安装 Doxygen:Doxygen 官网
- 运行:
doxygen -g # 生成配置文件 doxygen Doxyfile # 生成文档
5. 代码注释的最佳实践
✅ 好的注释习惯
✔ 解释复杂逻辑:
// 计算斐波那契数列(递归实现)
int fibonacci(int n) {
if (n <= 1) return n; // 递归基准条件
return fibonacci(n - 1) + fibonacci(n - 2);
}
✔ 标注 TODO 和 FIX
// TODO: 需要优化为动态规划
// FIXME: 可能会出现栈溢出
✔ 为关键代码提供解释
// 使用二分查找法查找目标值
int binarySearch(int arr[], int left, int right, int target) {
while (left <= right) {
int mid = left + (right - left) / 2; // 防止溢出
if (arr[mid] == target) return mid;
if (arr[mid] < target) left = mid + 1;
else right = mid - 1;
}
return -1;
}
❌ 避免不良注释习惯
❌ 不要写多余的注释
int a = 10; // 声明一个整数变量 a,并赋值为 10
❌ 不要使用过时的注释
// 旧代码(已经删除)
❌ 不要过度注释
/* 这段代码用于计算两个整数的和,并返回结果 */
int add(int a, int b) {
return a + b;
}
6. 参考资料
总结
- 单行注释 (
//
) 适用于短代码行注释 - 多行注释 (
/* */
) 适用于较长注释或屏蔽代码 - Doxygen 注释 适用于自动化文档生成
- 遵循注释最佳实践,提高代码可读性 🚀
发表回复