新增S10~S19代码规范检查并统一time_sync_task命名
check_coding_standard.py 新增 9 条机械检查(S14 并入 S6): - S10 (3.3.1) 函数名全小写(HAL_ 厂商回调豁免) - S11 (2.3.5) 禁止相对/绝对路径 include - S12 (7.6) 禁止可变参数函数 - S13 (7.7) 禁止递归函数 - S15 (6.1.4) 文件作用域指针须初始化为 NULL - S16 (3.2.2) 非 static 全局变量须 g_ 前缀 - S17 (2.2) 非 static 函数须在配对头文件声明 - S18 (6.3.1) 禁止 Yoda 条件(常量在右) - S19 (4.4.2) 函数定义左大括号与右括号同行 S6 词表扩充 scanf/strtok timeSyncTask 重命名为 time_sync_task(3 处代码引用) 更新 pre-commit 使用说明规则表
This commit is contained in:
@@ -131,12 +131,21 @@ cppcheck 是开源 C/C++ 静态分析工具,**不运行代码**,通过语法
|
||||
| S3 | 3.4.1 | `#define` 宏名必须全大写+下划线+数字 |
|
||||
| S4 | 3.5.1 | typedef 类型名必须以 `_t` 结尾 |
|
||||
| S5 | 6.3.2 | switch 必须包含 default 分支 |
|
||||
| S6 | 7.5 | 禁用 strcpy/strcat/sprintf/gets(改用 strncpy/strncat/snprintf) |
|
||||
| S6 | 7.5 | 禁用 strcpy/strcat/sprintf/gets/scanf/strtok(改用安全版本) |
|
||||
| S7 | 6.3.3 | 禁止 goto |
|
||||
| S8 | 4.1.1 | 禁止 Tab 缩进(4 空格) |
|
||||
| S9 | 5.3 | 函数定义必须有函数注释(含「函数功能」) |
|
||||
| S10 | 3.3.1 | 函数名必须全小写(HAL_ 厂商 API 回调名豁免) |
|
||||
| S11 | 2.3.5 | 禁止相对/绝对路径 include |
|
||||
| S12 | 7.6 | 禁止可变参数函数(`...`) |
|
||||
| S13 | 7.7 | 禁止递归函数 |
|
||||
| S15 | 6.1.4 | 文件作用域指针变量必须初始化为 NULL |
|
||||
| S16 | 3.2.2 | 文件作用域非 static 全局变量必须 `g_` 前缀 |
|
||||
| S17 | 2.2 | 非 static 函数必须在配对 .h 中声明(HAL_ 豁免;无配对头则跳过) |
|
||||
| S18 | 6.3.1 | 禁止 Yoda 条件(字面量/常量必须在运算符右侧) |
|
||||
| S19 | 4.4.2 | 函数定义左大括号必须与右括号同行 |
|
||||
|
||||
**不在检查范围**(语义类规则,无法机械可靠判定):函数长度/单一职责、参数数量、错误处理、递归、注释掉的代码等,仍需人工评审把关。
|
||||
**不在检查范围**(语义类规则,无法机械可靠判定):函数长度/单一职责、参数数量、错误处理、注释掉的代码等,仍需人工评审把关。
|
||||
|
||||
**排除文件**(与 cppcheck 钩子范围一致,另加):`Src/`、`Inc/`(CubeMX 生成,重新生成即覆盖)、`Drivers/BSP/GD5F2GQ5UE/nand_ftl.*`(dhara/FatFS 接口适配层,函数名由外部 API 固定)。
|
||||
|
||||
@@ -267,7 +276,7 @@ $env:PATH = [Environment]::GetEnvironmentVariable("Path","Machine") + ";" + [Env
|
||||
| `.gitlint` | 仓库根 | gitlint 规则(宽松,兼容中文) |
|
||||
| `scripts/check_mojibake.py` | scripts/ | U+FFFD 检测脚本 |
|
||||
| `scripts/check_coding_standard.py` | scripts/ | 代码规范检查脚本(规范 V1.0 可机械校验项) |
|
||||
| `docs/代码规范/嵌入式C语言代码规范(V1.0).md` | docs/代码规范/ | 代码规范原文(S1~S9 规则来源) |
|
||||
| `docs/代码规范/嵌入式C语言代码规范(V1.0).md` | docs/代码规范/ | 代码规范原文(S1~S19 规则来源) |
|
||||
| `docs/代码规范/cppcheck使用说明.md` | docs/代码规范/ | cppcheck 钩子详解(规则/配置/抑制) |
|
||||
| `docs/代码规范/pre-commit使用说明.md` | 本文档 | 部署与使用说明 |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user