基础库C语言编码规范(0.4)

基础库C语言编码规范(0.4)

ID:36281908

大小:190.00 KB

页数:24页

时间:2019-05-08

基础库C语言编码规范(0.4)_第1页
基础库C语言编码规范(0.4)_第2页
基础库C语言编码规范(0.4)_第3页
基础库C语言编码规范(0.4)_第4页
基础库C语言编码规范(0.4)_第5页
资源描述:

《基础库C语言编码规范(0.4)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基础库C语言编码规范(0.4)前言2一.代码结构框架31.1头文件框架31.2cpp文件框架3二.程序排版标准5三.注释规则7四.常量定义9五.变量声明和定义10六.结构声明和定义12七.函数声明和定义14八.宏定义规范16九.其它程序中需要注意的细节17十.内存管理20十一.附录211头文件212.Cpp文件22参考文献24前言这篇规范的初衷是为基础库代码的重构制定一套统一的规范。一方面可消除基础库中的一些常见的不安全隐患,一方面使基础库的对外展现趋向一致,提高代码的可读性,保证代码的质量。在开始这篇规范之前,有这样两点注意:什么是高质量的代码?高质量的代码=高稳定性+高健壮行+高可读+高

2、可扩展+高效率(关键性代码)+兼容性+可移植性。从这样的定义来看,我们的基础库还有很长的路要走。墨菲法则:所有可能出错的东西终究会出错(Anythingthatcangowrongwillgowrong)。一年多的基础库开发过程中,曾经认为不是问题的问题,这一年里几乎都有过失败的case。说来说去,一句话,我们的确有提高代码质量的必要,基础库需要相对严格的代码规范。本规范内容分为规则,推荐和提示三种形式。规则是必须遵守的内容;推荐是建议遵守的内容,一些特殊情况下可不遵守;提示是一些常见的错误以及应对的方法或技巧。一.代码结构框架1.1头文件框架头文件由以下5部分组成:其中,前两项必须,后三项

3、根据需要添加。1)文件声明;2)预处理块;3)需要的头文件包含;4)结构和返回值的声明;具体规则请参见第六章,结构的定义,以及【规则7-1-2】5)函数接口声明。l【规则1-1】注意头文件的顺序,按上述5部分的顺序进行,符合阅读者的观看习惯。l【规则1-2】文件声明中说明以下信息:版权声明,版本,功能和用途简介,修改人以及联系方式。只所以要留个名,是要后来人拿棒子打人时能找到正主儿。l【规则1-3】预处理块:利用ifndef/define/endif包含,避免重复引用。l【规则1-4】头文件包含的过程:#include用来包含系统头文件此时在系统目录下寻找;#include

4、“filename.h”用来包含用户头文件,此时先从用户工作目录开始寻找。l【规则1-4-1】头文件的顺序按照“系统库、libc库、其它baidu内部基础库、模块内头文件”这样的顺序来引用,顺序清晰,问题容易查找。l【规则1-5】结构定义:接口头文件中只定义需要提供给外部的结构;不需要提供给外部的结构,定义在内部头文件中或cpp文件中。头文件中#include的东西要尽量的少,少到只有你的头文件需要为止.很多放到头文件中#include的东西其实只有实现文件才需要。ullib有很多这样的例子,用户使用了本该内部定义的宏和结构,导致后续升级困难。结构定义的具体注意事项可参见第六章。目前有些基础

5、库的应用中,对一些内部结构依赖过于紧密,但考虑到升级代价,可根据情况,不进行内部封装。l【规则1-6】函数接口声明中不包含内部使用的函数,仅包含对外提供的接口。好处是接口清晰,方便理解和使用。l【推荐1-7】对于已有的老模块改造,可考虑将接口文件进行重构,分为推荐的接口,不推荐的接口两个头文件,另外,对于复杂的模块,如果有需要,可增加内部函数头文件,但不体现在接口中。1.2cpp文件框架cpp文件的定义由以下部分组成:1)文件声明,参见【规则1-2】1)头文件包含,参见【规则1-4】2)内部结构的定义3)全局变量定义4)接口的实现l【推荐1-9】原则上不使用全局变量,只读的全局变量可定义为常

6、量,例如目前的一些字符转换码表。l【规则1-10】不涉及文件外部使用的全局变量加static关键字修饰,避免不必要的冲突。l【规则1-11】文件内部使用的函数增加static关键字修饰,同样是为了避免不必要的冲突。l【推荐1-12】接口实现,在复杂情况下,实现部分也可以分割成两部分,内部util函数和接口实现部分。另外,在部分情况下,将不推荐的实现和兼容性的实现方在单独的文件中,方便管理。l【规则1-13】头文件和具体实现分开存放;每个模块有一个以模块名命名的头文件,用户只要include一个头文件,就可以使用整个模块。Demo:附录1头文件demoDemo:附录2cpp文件demo二.程序

7、排版标准程序的排版最大的好处是可以使一个库内部的代码风格保持一致。增强代码的可读性。避免由于眼睛的“误差”而产生的bug。在基础库的程序设计中,我们追求统一的风格。很多时候编码风格并无好坏之分,采用或不采用某种风格其实并无真正的理由。但在团队开发中,维持一定的编码风格是必要的,这能使团队作品一致,优美,提高可读性,减少可能的错误,提高代码review工作的质量。尤其是,基础库的受众是技术部的所有RD,良好的代

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。