ODCC编的码规范.doc

  1. 1、本文档共139页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ODCC编的码规范

ODCC编码规范 简介 为适应ODCC软件工厂建设需求,特通过整合各项目的编码规范,形成统一的ODCC编码规范。本规范既包含了针对C语言风格代码部分的内容,又有针对C++语言风格代码部分的内容,可根据具体项目需求选用。 目的 颁布本规范的目的是: 增加代码的健壮性、可读性、易维护性; 减少有经验和无经验开发人员编程所需的脑力工作; 在项目范围内统一代码风格; 通过人为以及自动的方式对最终软件应用质量标准; 使新的开发人员快速适应项目环境; 支持项目资源的复用:允许开发人员从一个项目区域(或子项目团队)移动到另一个,而不需要重新适应新的子项目团队的氛围。 适用范围 本规范适用于ODCC以及公司所有以C/C++语言为基础的平台下开发的项目。 概述 本规范包括内容: 如何组织项目代码; 编程风格(如何编写实际的源代码) 如何记录源代码; 代码内名称和源文件所使用的命名约定; 何时使用某些语言结构以及何时应避免某些语言结构。 只能使用 /**/ 块注释,禁止使用//行注释。 1-2 文件头注释和函数头参见附录。 1-3 除了共同约定的缩写外,注释中不使用缩写。 1-4 只能使英文进行注释,注释中不能出现全角字符。 1-5 注释的位置应与被注释的代码相邻,放在其上方或右方,不可放在下方。注释与所描述内容进行同样的缩排。 标识符 2-1 函数、变量及结构体等命名方法参考Laurel的命名规范。 2-2 标识符的长度小于32个字符。 2-3 宏定义的常量,宏名全部使用大写;const修饰的常量,常量名也全部大写,且不加类型前缀。两种命名都以下划线“_”来分割单词。 2-4 为变量添加类型信息等前缀的规范见附录。 2-5 不允许出现仅依靠大小写进行区分的标识符。 2-6 尽量避免命名中出现数字编号,除非逻辑上的确需要编号。 2-7 使用英文单词来构成标识符,不得使用汉语拼音。 变量与常量 3-1 不使用char、int、 short、 long、 float 以及double等基本类型。而采用自定义的等价标识符(typedef)CHAR, UCHAR, INT16, INT32, FLOAT32, LONG64, ULONG64等。使用const和void而不是CONST和VOID。 3-2 用typedef定义了的类型名称不能再次使用。 3-3 对于无符号型和float型的浮点数字常量,要加上表示类型的后缀。 3-4 不允许出现“魔法数”(Magic Number),而应该使用宏定义或const定义常量。宏定义常量的时候,常量必须包含在括号内。 3-5 除结构体外,变量声明时必须初始化。所有变量使用前必须初始化。 3-6 一个变量不要用于多个目的。 3-7 在数组和结构体的非空的初始化中,为了表示数组或结构体的匹配,必须使用大括号‘{ }’。 3-8 *修饰符用作指针声明时要靠近变量名。 3-9 不允许使用3层以上的指针。 3-10 除了指向相同数组的时候以外,不能对两个指针使用关系运算符。 3-11 不能解引用空指针(验证指针非空之后才能使用)。 3-12 位段成员的类型必须用整型类型来定义。 3-13 要为所有结构体和联合体的成员命名,只有通过该名称才能访问该成员。不能使用移动指针的方法访问结构成员。 3-14 只具有文件作用域的全局对象必须声明为static。 3-15 同一编译单元中,一个识别符不能同时声明为内部和外部链接。 3-16 外部链接的标识符必须拥有唯一的外部定义。 3-17 头文件中只存放“声明”而不存放“定义”。 表达式 4-1 不能依赖默认的C语言运算符的优先级,必须使用括号来表明运算顺序。 4-2 不能对有符号数进行与,或,非,异或,移位等位运算。 4-3 移位运算符的右边操作数必须小于左边操作数的bit数。 4-4 不能通过位移来实现乘法和除法。 4-5 除了for循环控制语句以外,不能使用逗号运算符。 4-6 不管是通过规格认定的何种顺序来计算,算式的值必须是相同的。 4-7 或者||逻辑运算符的右边操作数不能包含副作用。 4-8 操作数实质上不为BOOL型的时候,应该显式测试其与相应值的相等性。 4-9 不得显式判断浮点数与任何数据类型之间的相等性和不等性。 控制流 5-1 不能使用goto语句。除了switch语句以外,不能使用label标签。 5-2 空语句必须独占一行。 5-3 不能有非空而又对程序的执行没有“贡献”的语句。 5-4 switch语句中非空的case语句,都必须以break结束。 5-5 所有switch语句都必须在最后以de

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档