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

58 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: cpp-coding-style
description: 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`、第三方日志原生接口或混用其他宏。
```cpp
// 正确:流式
LOG_ERRORS() << "SerialTransport: 无法打开串口 " << port_ << ": " << strerror(errno);
// 错误:传参格式
LOG_ERRORS("SerialTransport: 无法打开串口 {}: {}", port_, strerror(errno));
// 错误:原生输出
std::cerr << "SerialTransport: 无法打开串口" << std::endl;
```
- 日志风格沿用同模块既有前缀和语气