1.8 KiB
1.8 KiB
| name | description | metadata | ||
|---|---|---|---|---|
| code-style | 项目 C/C++ 代码格式规范 — 缩进、括号、空格、空行、条件写法 |
|
缩进
使用 Tab 字符缩进(显示宽度 4),不使用空格缩进。
括号风格(Allman 风格)
所有大括号 独占一行,包括函数、if、for、while、struct:
LOCAL void check_sg_zone_change()
{
if(g_sg_zone_saddr.empty())
{
return;
}
for(auto &setting : g_vec_setting)
{
if(strcmp(setting.base.saddr, zone_saddr) == 0)
{
break;
}
}
}
单条语句也保留大括号,不省略。
空格规则
- 关键字与括号之间 不加空格:
if(,for(,while(,switch( - 函数名与括号之间 不加空格:
func(args) - 指针声明:
type *name(*前有空格,后无空格) - 引用声明:
type &name
Yoda 条件
常量写在比较运算符左侧:
if(NULL == ptr) // ✓ 正确
if(0 != ret) // ✓ 正确
if(ptr == NULL) // ✗ 不符合项目风格
空行
- 函数之间:两行空行
- 逻辑块之间:一行空行
#include区块末尾:一行空行
typedef struct
typedef struct
{
uint32_t field1;
uint8_t field2;
}stru_type_name;
结构体成员无缩进额外层级(与 { 对齐)。
变量声明
- 局部静态变量用
LOCAL宏(=static) - 全局变量用
g_前缀 - 结构体用
stru_前缀 - 枚举用
enum_前缀,枚举值用ENUM_前缀
Why: 从项目中多个核心源文件(iec61850s.cpp、self_ptl.cpp、ws_method.cpp、dc_signal.cpp)提取的共识格式规范 How to apply: 新增代码和修改现有代码时必须遵守此格式。本次仅统一缩进/括号/空格/空行,命名问题暂不处理。