一、头文件编程规范
三大原则——设计层面:
1、头文件中适合放置接口声明,不适合放实现
2、头文件职责单一
3、头文件应向稳定的方向包含
八项规则——编码层面:
1、只能通过包含头文件的方式使用其他模块提供的接口,禁止在.c中通过extern的方式使用外部函数接口、变量
2、禁止在头文件中定义变量
3、禁止在extern“C”中包含头文件
4、总是编写内部的#ifdef保护符
5、头文件应当自包括
6、禁止头文件循环依赖
7、禁止包含用不到的头文件
(否则多次包含该头文件会有变量重复定义的错误);
头文件的包含关系代表一种依赖,头文件变化会引起包含该文件的模块重新编译;
8、每一个.c文件应有一个同名.h文件,用于声明需要对外公开的接口
二、函数编程规范
为什么需要函数
1、降低复杂度,易于思考
2、便于协同开发
3、代码复用,减少代码量
4、封装变化
5、良好的可移植性
函数规范
1、圈复杂度小于7
圈复杂度就是一个函数可以执行的路径条数;
2、函数短小(推荐小于50行,一屏)
3、嵌套层数小于5
单行字符数小于80个,一屏;
4、职责单一
接受函数名的约束,避免文不对题;
5、抽象层次单一
避免读者迷失在细节;
6、参数不超过3个
7、避免重复
8、避免重入问题
时间上,在函数执行完之前,又一次被调用,称为重入;只有在函数中有对公共资源访问的时候,才会有问题;
9、不要返回局部变量
三、语法规范
命名、注释、格式、效率、