资源介绍
华为代码规范,适用 C/C++
1 概述 ................................................................................................................................................................... 5
1.1 编写目的 ........................................................................................................................................... 5
1.2 文档约定 ........................................................................................................................................... 5
1.3 预期的读者和阅读建议 ................................................................................................................... 5
1.4 参考文献 ........................................................................................................................................... 5
2 排版要求 ........................................................................................................................................................... 5
2.1 程序块缩进 ....................................................................................................................................... 5
2.2 程序块之间空行 ............................................................................................................................... 5
2.3 长语句和长表达式 ........................................................................................................................... 6
2.4 循环、判断等长表达式或语句 ....................................................................................................... 7
2.5 长参数 ............................................................................................................................................... 7
2.6 短语句 ............................................................................................................................................... 8
2.7 条件、循环语句 ............................................................................................................................... 8
2.8 语句对齐 ........................................................................................................................................... 8
2.9 函数、过程和结构等语句块 ........................................................................................................... 9
2.10 程序块分界符 ................................................................................................................................... 9
2.11 操作符前后空格 ............................................................................................................................. 10
2.12 其他 ..................................................................................................................................................11
3 注释 ..................................................................................................................................................................11
3.1 有效注释量 ......................................................................................................................................11
3.2 公司标识 ..........................................................................................................................................11
3.3 说明性文件 ..................................................................................................................................... 12
3.4 源文件头 ......................................................................................................................................... 13
3.5 函数头部说明 ................................................................................................................................. 13
3.6 注释与代码一致 ............................................................................................................................. 14
3.7 注释内容 ......................................................................................................................................... 14
3.8 注释缩写 ......................................................................................................................................... 14
3.9 注释位置 ......................................................................................................................................... 14
3.10 变量、常量注释 ............................................................................................................................. 15
3.11 数据结构的注释 ............................................................................................................................. 15
3.12 全局变量 ......................................................................................................................................... 16
3.13 注释缩排 ......................................................................................................................................... 16
3.14 注释与代码之间空行 ..................................................................................................................... 17
3.15 变量定义、分支语句 ..................................................................................................................... 17
3.16 其他 ................................................................................................................................................. 19
4 标识符命名 ..................................................................................................................................................... 20
4.1 命名清晰 ......................................................................................................................................... 20
4.2 特殊命名需注释 ............................................................................................................................. 21
4.3 命名风格保持一致 ......................................................................................................................... 21
4.4 变量命名 ......................................................................................................................................... 21
4.5 命名规范与系统风格一致 ............................................................................................................. 22
4.6 其他 ................................................................................................................................................. 22
5 可读性 ............................................................................................................................................................. 23
5.1 运算符优先级 ................................................................................................................................. 23
第 3 页 共 69 页
5.2 避免直接使用数字作为标识符 ..................................................................................................... 24
5.3 其他 ................................................................................................................................................. 24
6 变量、结构 ..................................................................................................................................................... 25
6.1 公共变量 ......................................................................................................................................... 25
6.2 公共变量说明 ................................................................................................................................. 26
6.3 公共变量访问说明 ......................................................................................................................... 26
6.4 公共变量赋值 ................................................................................................................................. 26
6.5 防止局部变量与公共变量同名。 ................................................................................................. 26
6.6 严禁使用未经初始化的变量作为右值。 ...................................................................................... 26
6.7 其他 ................................................................................................................................................. 27
7 函数、过程 ..................................................................................................................................................... 34
7.1 对所调用函数的错误返回码要仔细、全面地处理。 .................................................................. 34
7.2 明确函数功能,精确(而不是近似)地实现函数设计。 .......................................................... 34
7.3 局部变量 ......................................................................................................................................... 34
7.4 全局变量 ......................................................................................................................................... 34
7.5 接口函数参数 ................................................................................................................................. 35
7.6 其他 ................................................................................................................................................. 35
8 可测性 ............................................................................................................................................................. 44
8.1 调测开关 ......................................................................................................................................... 44
8.2 打印信息 ......................................................................................................................................... 45
8.3 单元测试 ......................................................................................................................................... 45
8.4 集成测试 ......................................................................................................................................... 45
8.5 断言使用 ......................................................................................................................................... 45
8.6 设置与取消有关测试手段时,不能影响软件功能功能 .............................................................. 48
8.7 版本维护 ......................................................................................................................................... 48
8.8 其他 ................................................................................................................................................. 48
9 程序效率 ......................................................................................................................................................... 50
9.1 编程时要经常注意代码的效率。 ................................................................................................. 50
9.2 提高代码效率 ................................................................................................................................. 50
9.3 全局效率高于局部效率 ................................................................................................................. 51
9.4 提高代码空间效率 ......................................................................................................................... 51
9.5 循环体内工作量最小化 ................................................................................................................. 52
9.6 其他 ................................................................................................................................................. 53
10 质量保证 ................................................................................................................................................. 56
10.1 在软件设计过程中构筑软件质量。.............................................................................................. 56
10.2 代码质量保证优先原则 ................................................................................................................. 56
10.3 只引用属于自己的存贮空间。 ..................................................................................................... 56
10.4 防止引用已经释放的内存空间。 ................................................................................................. 56
10.5 内存及时释放 ................................................................................................................................. 57
10.6 文件句柄及时关闭 ......................................................................................................................... 57
10.7 防止内存操作越界 ......................................................................................................................... 58
10.8 认真处理程序所能遇到的各种出错情况 ...................................................................................... 59
10.9 初始化变量 ..................................................................................................................................... 59
10.10 数据一致性检查 ............................................................................................................................. 59
10.11 严禁随意更改其它模块或系统的有关设置和配置 ...................................................................... 59
10.12 不能随意改变与其它模块的接口 ................................................................................................. 59
第 4 页 共 69 页
10.13 系统接口 ......................................................................................................................................... 59
10.14 编程时,要防止差 1 错误 ............................................................................................................. 61
10.15 操作符检查 ..................................................................................................................................... 61
10.16 分支语句写完整 ............................................................................................................................. 62
10.17 使用 return 语句 .............................................................................................................................. 62
10.18 不要滥用 goto 语句 ........................................................................................................................ 62
10.19 其他 ................................................................................................................................................. 62
11 代码编辑、编译、审查 ......................................................................................................................... 65
11.1 打开编译器的所有告警开关对程序进行编译 .............................................................................. 65
11.2 在产品软件(项目组)中,要统一编译开关选项 ...................................................................... 65
11.3 通过代码走读及审查方式对代码进行检查。 .............................................................................. 65
11.4 测试部测试产品之前,应对代码进行抽查及评审 ...................................................................... 65
11.5 其他 ................................................................................................................................................. 65
12 代码测试、维护 ..................................................................................................................................... 67
12.1 单元测试要求至少达到语句覆盖 ................................................................................................. 67
12.2 单元测试开始要跟踪每一条语句,并观察数据流及变量的变化 .............................................. 67
12.3 清理、整理或优化后的代码要经过审查及测试。 ...................................................................... 67
12.4 代码版本升级要经过严格测试 ..................................................................................................... 67
12.5 使用工具软件对代码版本进行维护.............................................................................................. 67
12.6 正式版本上软件的任何修改都应有详细的文档记录 .................................................................. 67
12.7 其他 ................................................................................................................................................. 67
13 宏 ............................................................................................................................................................. 68
13.1 用宏定义表达式时,要使用完备的括号 ...................................................................................... 68
13.2 将宏所定义的多条表达式放在大括号中 ...................................................................................... 68
13.3 使用宏时,不允许参数发生变化 ................................................................................................. 69
- 上一篇: 华为C/C++编码规范
- 下一篇: 华为认证培训.rar