新增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:
2026-09-01 17:38:43 +08:00
parent 02c10fa5ef
commit 7f0087d430
5 changed files with 188 additions and 11 deletions
+12 -3
View File
@@ -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` | 本文档 | 部署与使用说明 |