1.7 KiB
1.7 KiB
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 顺序
- 对应头文件
- C 系统头
- C++ 标准库
- 第三方库
- 项目内头文件
组间空一行。
代码习惯
- 单行
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; - 日志风格沿用同模块既有前缀和语气