Files
wind_power_cal/.agents/skills/cpp-coding-style/SKILL.md
T
2026-07-14 15:43:18 +08:00

1.7 KiB
Raw Blame History

name, description
name description
cpp-coding-style C/C++ 代码风格规范。用于本仓库 C/C++ 新增、修改、重构时,统一格式、命名、include 顺序和现代 C++ 用法。

C/C++ 风格规范

基础约束

  • 使用 C++17
  • 4 空格缩进
  • 大括号使用 K&R 风格
  • 单行长度尽量不超过 100

命名规则

  • 类型(class/struct/enum):PascalCase
  • 函数/方法:PascalCase
  • 普通变量:snake_case
  • 成员变量:snake_case_
  • 常量:kPascalCase
  • 宏:ALL_CAPS
  • 命名空间:小写

include 顺序

  1. 对应头文件
  2. C 系统头
  3. C++ 标准库
  4. 第三方库
  5. 项目内头文件

组间空一行。

代码习惯

  • 单行 if/for/while 也加大括号
  • 不使用 using namespace std;
  • 优先 constexpr[[nodiscard]]、RAII
  • 优先 static_cast,避免 C 风格强转
  • auto 只在不降低可读性时使用

注释与日志

  • 注释优先说明"为什么",不是"做了什么"
  • 保留高价值中文注释,不随手删除
  • 强制包含 #include "logger/Logger.hpp"(或其相对路径)
  • 统一使用流式日志宏LOG_DEBUGS()LOG_INFOS()LOG_WARNS()LOG_ERRORS(),通过 << 拼接内容。严禁使用 std::cerr/std::cout、第三方日志原生接口或混用其他宏。
    // 正确:流式
    LOG_ERRORS() << "SerialTransport: 无法打开串口 " << port_ << ": " << strerror(errno);
    // 错误:传参格式
    LOG_ERRORS("SerialTransport: 无法打开串口 {}: {}", port_, strerror(errno));
    // 错误:原生输出
    std::cerr << "SerialTransport: 无法打开串口" << std::endl;
    
  • 日志风格沿用同模块既有前缀和语气