一 命名
1.1 名称必须清楚表示命名对象目的。
1.2不能与现有概念类似或重复。
1.3命名使用正确反义词
1.4名字长度建议10~30字符
1.5不要把首字母缩写词中字母全部大写
1.6全局变量必须以G开头 如GMyGuid.
1.7模块全局变量必须以m开头,如mMyGuid。
·1.8指针变量可以用 “p” 前缀
二 格式化
2.1.1不允许使用制表符
2.1.2缩进双空格
2.1.3不要把代码条件放在同一行
2.1.4二进制运算符前后都要留空白
2.1.5一元运算符与操作数之间无空格( ++ --)
if(( --i ) > 0)
2.1.6如果 , ; 后面有其他代码要留有空格
2.1.7使用小括号,而不是运算符优先级
2.1.8指针必须与NULL进行比较
2.1.9新文件不允许使用#pragma,但pragma pack(#)除外;
2.1.10新文件必须以“文件标题”注释块开头
2.1.11 二元运算符前后要有空格
if (MyVar != 0) {
......
}
包含文件
2.2.1每个头文件必须为所有代码提供#ifndef FILE_NAME 和#endif防护
#ifndef必须时文件头注释后的第一行代码
#endif必须单独出现在文件的最后一行
2.2.2c,每一个参数必须使用适合的 如 IN ,OUT,OPTIONAL,等修饰符
代码文件
2.3.1 只能使用 UEFI数据类型,禁止使用标准c类型
2.3.2代码文件不能包含 #define和 typedef语句
2.3.3枚举类型必须以最小元素开头,最大元素结尾
2.3.4结构体的格式定义为 typedef。
2.3.5函数定义的左右大括号在独立的第一行
文档
2.4.1本地注释必须能够解释为什么能这样工作的原因
2.4.2本地注释必须在注释块前面有一个空行
2.4.3如果某个注释能够适用于多个代码块,那么注释后面留一个空行,若适合单个代码行不留空格
2.4.4代码中不允许存在注释标记,包括 BUGBUG 你的名字 名字首字目 特殊标记 ,用缺陷跟踪系统来跟踪代码缺陷而不是代码中标记,