软件编码规范文档
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++设计编码规范
(试用版)
设备开发部黄焕斌
目录
重要提示错误!未定义书签。
背景错误!未定义书签。
1文件组织规则错误!未定义书签。
命名错误!未定义书签。
目录错误!未定义书签。
预处理错误!未定义书签。
注释错误!未定义书签。
2代码组织规则错误!未定义书签。
空行错误!未定义书签。
换行错误!未定义书签。
空格错误!未定义书签。
对齐错误!未定义书签。
就近原则错误!未定义书签。
精简原则错误!未定义书签。
3命名规则错误!未定义书签。
自注释错误!未定义书签。
变量错误!未定义书签。
函数错误!未定义书签。
类型错误!未定义书签。
宏错误!未定义书签。
常量错误!未定义书签。
4设计规则错误!未定义书签。
识别类和函数错误!未定义书签。
构造函数错误!未定义书签。
封装性错误!未定义书签。
函数参数错误!未定义书签。
函数返回值错误!未定义书签。
契约错误!未定义书签。
规模错误!未定义书签。
名字空间错误!未定义书签。
类型转换错误!未定义书签。
常量错误!未定义书签。
内联错误!未定义书签。
静态变量错误!未定义书签。
编译依赖错误!未定义书签。
可重入错误!未定义书签。
5内存管理规则错误!未定义书签。
模块化错误!未定义书签。
静态分配错误!未定义书签。
new/delete 错误!未定义书签。
有效性错误!未定义书签。
正确释放错误!未定义书签。
拷贝错误!未定义书签。
6注释规则错误!未定义书签。
有效性错误!未定义书签。
普通注释错误!未定义书签。
Doxygen注释错误!未定义书签。
定义错误!未定义书签。
申明错误!未定义书签。
模块错误!未定义书签。
7维护规则错误!未定义书签。
消除警告错误!未定义书签。
代码修改错误!未定义书签。
标本兼治错误!未定义书签。
参考资料错误!未定义书签。
重要提示
本规范中的示例代码都在表格框中显示,绿色的表格框表示正确的示例代码,红色的表格框表示不建议的示例代码。
背景
C++是大华设备软件和平台软件开发的主要软件,在新的软件框架里,两种平台的组件甚至是共用的。统一的代码风格,良好的设计风格,有利于代码的实现和阅读,有利于减少代码错误和提高代码效率,能有效地促进技术的交流和发展。
常见的代码规范都异常冗长,调调框框太多。本规范力求以简明的内容,概括一些重要的规则,将相似的规则进行提炼集中描述,并提供对照的示例代码加深理解。规范的使用者花半个小时左右,就可以熟悉整个规范。
所有大华基于新软件框架的底层组件,业务组件,应用组件都必须遵守此规范。
例外
本规范是强制要求,不过有些情况例外:
与第三方库有关的代码:比如stl,boost,json等等,使用、移植这些库时,相关的代码可以按照这些库的规范。
Windows代码:主要指基于公共软件框架,同时使用了非公共组件框架内的其他API接口的组件,可以继续保留Windows的规范。
文件组织规则
命名
所有的目录和文件名使用大写字母开头的单词组合,目录名单词之间可以用空格分开。
引用文件名时要严格区分大小写。
与操作系统关系密切的工程的命名可以参考操作系统的规则。
空格
‘,’之后要留空格。
如果‘;’不是一行的结束符号,其后要留空格。
二目或三目操作符前后留空格。
但“[]”、“.”、“->”这类操作符和作用于分辨符“::”前后不加空格。
定义
对于类,结构,联合,枚举,函数,宏,自定义类型,名字空间,非局部变量等定义均需要使用Doxygen简要注释。
对于类,结构,联合,枚举等成员使用右置的Doxygen简要注释。
如果变量是用来作为某种标志而不是连续的数值,还应说明每种取值的意义。
申明
对于全局函数或者类的公有函数的申明,或者直接在类定义中实现的公有函数,应使用\brief \param \return \retval \note \sa等命令进行注释,命令内容为空的可以省略,可使用va模板。
对其他申明可以不加注释。
模块
将相同用途的定义或申明进分组成模块,比如API集等等。
使用\defgroup
使用\addtogroup
使用\ingroup (
.]The Pragmatic Programmer - From journeyman to master
[Google]