修复规范矛盾并定案5项规则,保护宏统一XXX_H
规则定案:常量在右(a>5)、保护宏XXX_H(禁双下划线)、 头文件常量用#define、存储类前缀(g_/s_)优先、允许void返回值 全库32个.h头文件保护宏 __XXX_H → XXX_H 改名(字节级替换) S1检查规则同步更新(拒绝双下划线),Inc/gpio.h 反向验证被正确拦截 规范示例矛盾修复:K&R括号、标准类型、变量初始化、命名常量、注释字段补全
This commit is contained in:
@@ -5,7 +5,7 @@ C 语言代码规范检查(《嵌入式C语言代码规范(V1.0)》可机
|
||||
由 pre-commit 调用:python scripts/check_coding_standard.py <file...>,发现违规退出码 1。
|
||||
|
||||
检查项(括号内为规范条款号):
|
||||
S1 (2.3.1) .h 文件必须有 __XXX_H 格式的头文件保护宏
|
||||
S1 (2.3.1) .h 文件必须有 XXX_H 格式的头文件保护宏(禁止 __ 双下划线前缀)
|
||||
S2 (5.2) 文件开头必须有文件头注释(含 模块名称 / 作者)
|
||||
S3 (3.4.1) #define 宏名必须全大写 + 下划线 + 数字
|
||||
S4 (3.5.1) typedef 类型名必须以 _t 结尾
|
||||
@@ -35,8 +35,8 @@ def check_file(path):
|
||||
|
||||
# S1 (2.3.1) .h 头文件保护宏
|
||||
if path.endswith('.h') and \
|
||||
not re.search(r'#\s*ifndef\s+__[A-Z0-9_]+_H\b', text):
|
||||
v.append(('-', 'S1 2.3.1', '缺少 __XXX_H 格式的头文件保护宏'))
|
||||
not re.search(r'#\s*ifndef\s+(?<!_)[A-Z][A-Z0-9_]*_H\b', text):
|
||||
v.append(('-', 'S1 2.3.1', '缺少 XXX_H 格式的头文件保护宏(禁止 __ 前缀)'))
|
||||
|
||||
# S2 (5.2) 文件头注释
|
||||
head = '\n'.join(lines[:60])
|
||||
|
||||
Reference in New Issue
Block a user