通用编码规范

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

通用编码规范

1.引言

本规范编制是为了指导程序员编码,其目的是:

1)改善软件的可读性,使程序员尽快而彻底地理解新的代码;

2)防止新接触本语言的人出于节省时间的需要,自创与组织成员不相容的一套风格;

3)防止新接触本语言的人一次次的犯同样的错误;

4)新加入的程序员可以很快的适应环境;

5)在一致的环境下,减少程序员犯错的机会。

2.编排风格约定

编排风格应遵循下列规定:

1)严格采用阶梯层次组织程序代码:各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格。功能块、语句块的边界大括号一律独占一行,相匹配的大括号在同一列,对继行则要求再缩进4格;

2)对变量的定义,尽量位于函数的开始位置;

3)函数名之后不要留空格,紧跟左括号‘(’,以与关键字区别;

4)‘(’向后紧跟,‘)’、‘,’、‘;’向前紧跟,紧跟处不留空格;

5)‘,’之后要留空格,如Function(x, y, z)。如果‘;’不是一行的结束符号,其后要留空格,如for (initialization; condition; update);

6)赋值操作符、比较操作符、算术操作符、逻辑操作符、位域操作符,如“=”、“+=”“>=”、“<=”、“+”、“*”、“%”、“&&”、“||”、“<<”,“^”

等二元操作符的前后应当加空格;但是,对于表达式比较长的for语句和if语句,为了紧凑起见可以适当地去掉一些空格,如for (i=0; i<10; i++)和if ((a<=b) && (c<=d));

7)一元操作符如“!”、“~”、“++”、“--”、“&”(地址运算符)等前后不加空格。“[]”、“.”、“->”等操作符前后不加空格;

8)修饰符*和&紧靠变量名。

9)各个大的功能块之间最好留一空行以及适当的注释;

10) if、for、do、while、switch、case、default等语句自占一行,且if、for、do、while 等语句的执行语句部分无论多少都要加括号{ },对“return语句”

不要求;

11)不允许把多个短语句写在一行中,即一行只写一条语句;

12)长表达式要在低优先级操作符处拆分成新行,操作符放在新行之首(以便突出操作符),拆分出的新行要进行适当的缩进,使排版整齐,语句可读;

13)对于switch…case…语句,break语句要放在{ }内。

3.界面设计约定

界面设计应遵循下列约定:

1)一般选系统常用的字体,汉字字体选宋体,字体大小为10;

2)为方便用户的使用,所有的输入控件应该按tab键排序;

3)要考虑到用户可能会用到不同的分辨率,在开发时应使用当时流行的分辨率。

4.命名规则

4.1. 变量命名

变量命名应遵循下列约定:

1)变量名采用匈牙利命名法,命名必须具有一定的实际意义;

2)形式为s_xAbcFgh:s由变量的作用范围确定;x由变量类型确定;Abc、Fgh表示连续意义字符串,多个单词之间无间隙;例如:m_strTableName;

3)尽量避免用中文的拼音;对非通用的变量,在定义时加入注释说明;

4)全局变量用g_开头,即:变量名= g_+变量类型+变量(或缩写)静态变量用s_开头,即:变量名= s_+变量类型+变量(或缩写)

成员变量用m_开头,即:变量名= m_+变量类型+变量(或缩写)

5)枚举类型(enum)的变量用e做类型前缀;

6) struct类型的变量用s做类型前缀。

4.2. 常量命名和宏定义

常量命名与宏定义应遵循下列约定:

1)常量和宏定义必须全部用大写字母,中间可根据意义的连续性用下划线连接,每一个变量定义的右侧必须有一简单的注释;说明其作用;

2)用宏定义表达式时,要使用完备的括号。

4.3. 函数命名

函数命名应遵循下列约定:

1)函数的命名应该尽量用英文表达出函数完成的功能,遵循动宾结构的命名法则:成员函数可以只有动词,此时宾语默认为调用对象;

2)引用外部函数必须注明函数来源(模块名及文件名);

3)函数参数规范:参数名称的命名参照变量命名规范;为了提高程序的运行效率,减少参数占用的堆栈,传递大结构的参数,一律采用指针或引用方式传递;为了便于其他程序员识别某个指针参数是入口参数还是出口参数,同时便于编译器检查错误,应该在入口参数前加入const标志。

4.4. 结构体的命名

结构体的命名应遵循下列约定:

1)结构体的命名必须全部用大写字母;

2)结构的功能要单一,是针对一种事务的抽象。不要设计面面俱到、非常灵活的数据结构;

3)仔细设计结构中元素的布局与排列顺序,使结构容易理解、节省占用空间,并减少引起误用现象。

5.注释规范

注释要求使用中文,注释量应当不少于10%。

5.1. 函数的头注释

1)头文件中应有函数的简单注释,实现文件中应有函数的详细注释。对于如下两种特殊情况可以省略函数的详细注释:(a)属性的读写函数;(b)有效代码量小于8行且没有参数和返回值的函数;

2)函数的详细注释应包含如下内容:功能描述、输入参数、输出参数、返回值、创建人、创建日期、修改历史、注意事项;

3)对于某些函数,其部分参数为传入值,而部分参数为传出值,所以对参数要详细说明该参数是输入参数,还是输出参数,对于某些意义不明确的参数还要做详细说明(例如:以角度作为参数时,要说明该角度参数是以弧度(PI)还是以度为单位),对既是输入又是输出的变量应该在输入和输出参数处同时标明;4)函数的详细注释模板如表2所示:

5.2. 文件的头注释

头文件注释内容包括:内容描述、创建人、创建日期、修改历史、版本、遗留问题等,复杂的算法需要加上流程说明,模板如表3所示:

相关文档
最新文档