Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

C++ 注释(Comments)

1. 概述

注释用于解释程序逻辑、记录设计思路、说明接口功能或在调试时暂时屏蔽代码。 C++ 编译器在编译阶段会忽略注释内容,它们不会出现在目标文件中。 良好的注释能显著提升代码的可读性与可维护性。

2. 注释的基本类型

C++ 提供两种常见的注释形式:

2.1 单行注释(Single-line Comment)

// 开头,直到行尾结束。

// 输出欢迎信息
std::cout << "Hello, World!" << std::endl;

// 在行末添加说明
int count = 10;  // 循环次数

适用于简短说明或临时调试。

2.2 多行注释(Multi-line Comment)

/* 开始,以 */ 结束,可以跨越多行。

/*
此部分用于初始化程序资源。
包括:
1. 配置加载
2. 内存分配
3. 日志系统启动
*/
initialize_system();

注意:多行注释 不支持嵌套,即不能在 /* ... */ 内再次使用 /* ... */

3. 注释编写原则

  1. 准确:注释必须与代码逻辑一致。
  2. 必要:解释“为什么这样做”,而非“代码做了什么”。
  3. 简洁:避免冗长或与代码重复的描述。
  4. 及时:修改代码时应同步更新注释。
  5. 一致:保持统一的注释风格与格式。

示例:

// 不推荐:重复代码逻辑
int x = x + 1; // x 加 1

// 推荐:说明设计目的
// 自增以保持计数连续性
x++;

4. 文档化注释(Documentation Comments)

在较大的工程中,可以通过特殊格式的注释自动生成接口文档。 常用工具为 Doxygen,支持从源码中提取函数、类、参数等说明信息。

4.1 格式示例

/**
 * @brief 计算两个整数的和
 * @param a 第一个整数
 * @param b 第二个整数
 * @return 两数之和
 */
int add(int a, int b) {
    return a + b;
}

或者:

/// 计算矩形面积
/// @param width 宽度
/// @param height 高度
/// @return 面积
double area(double width, double height);

4.2 常用标签

标签含义示例
@brief简要说明@brief 初始化系统资源
@param参数说明@param path 配置文件路径
@return返回值说明@return 初始化是否成功
@note备注说明@note 必须在主线程调用
@warning警告信息@warning 该函数非线程安全
@todo待办事项@todo 增加异常处理

5. 实际使用规范

在团队开发或课程项目中,建议采用以下注释习惯:

  1. 文件头部:说明文件用途、作者、日期。
  2. 函数前:使用文档注释描述功能、参数与返回值。
  3. 代码内部:仅在逻辑复杂处添加必要注释。
  4. 调试阶段:临时屏蔽代码时使用 //,不保留旧逻辑。

示例:

/**
 * @file user_manager.cpp
 * @brief 用户管理模块
 * @author Ding
 * @date 2025-10-13
 */

/// 初始化用户系统
/// @return 初始化是否成功
bool init_user_system() {
    // TODO: 支持从配置文件加载默认用户
    return true;
}

6. 调试与维护中的注释

  • 调试时临时屏蔽代码

    // 禁用日志输出
    // std::cout << "Debug info" << std::endl;
    
  • 避免保留废弃代码

    // 不推荐:应使用版本控制系统管理
    // old_function();