C 语言编程规范 -- 华为

1. 代码总体原则

1.1 清晰第一,清晰性是易于维护,易于重构的程序必须具备的特征

代码首先是给人读的,好的代码应当可以像文章一样发生朗诵出来,“程序必须为阅读它的人而编写,只是顺便用于机器执行” – Harold Abelson 和Gerald Jay Sussman
在这里插入图片描述

1.2 优秀的代码可以自我解释,不需要通过注释即可轻易读懂

1.3 头文件中适合放置接口的声明,不适合放置实现

1.4 除了常用的通用缩写外,不得使用单词缩写,不得使用汉语拼音

1.5 防止局部变量和全局变量同名

2. 简洁为美,简洁就是易于理解,并且易于实现

代码越长,越难以看懂,也就越容易在修改时引入错误,写的代码越多,意味着出错的地方越多,也就意味着代码的可靠性越低

2.1 废弃的代码(没有被调用的函数和全局变量)要及时清除,重复代码应该尽可能提炼成函数

2.2 文件应当职责单一

2.3 一个函数仅需要完成一件功能

2.4 新增函数不得超过50 行

3. 选择合适的风格,与原代码保持风格一直(前提是原代码有风格,有的原代码都是乱七八糟的,那就用自己风格吧,骚年)

3.1. 华为论坛 http://hi3ms.huawei.com/group/1735/threads.html (这个网址只能在华为公司内网才能打开,华为内部的 3MS资料库)

4. 头文件

对于C 语言来说,头文件的设计体现了大部分的系统设计,系统框架,不合理的头文件布局是编译时间过长的根本原因,不合理的头文件实际上就是不合理的设计,不合理的系统架构

4.1 头文件编译依赖

a.h 包含了b.h,b.h 又包含了c.h,那么a.h 就会依赖c.h,一旦c.h 修改了,a.h 也会重新编译,嵌套越深,编译时间越长,浪费大量的编译时间去解析头文件

4.2 减少头文件的包含,尤其是在头文件中包含头文件,尽量避免头文件包含头文件

4.3 原则:头文件中适合放置接口的声明,不适合放置实现

  1. 内部使用的函数(相当于类的私有方法),声明不能放置在头文件中,加static 修饰
  2. 内部使用的宏,枚举,结构定义不应放入头文件中
  3. 变量定义不应放在头文件中,应放在 .c 文件中
  4. 变量的声明尽量不要放在头文件中,亦尽量不要使用全局变量作为接口,变量是模块或单元的内部实现细节,不应通过在头文件中声明的方式直接暴露给外部,应通过函数接口的方式对外暴露,即使必须使用全局变量,也只应当在.c 中定义全局变量,在.h中声明变量为全局的

4.4 原则:头文件应当职责单一

头文件过于复杂,依赖过于复杂是导致编译时间过长的主要原因,不能循环依赖

猜你喜欢

转载自blog.csdn.net/weixin_50212044/article/details/132488611