02c c语言编码规范.doc
《02c c语言编码规范.doc》由会员分享,可在线阅读,更多相关《02c c语言编码规范.doc(20页珍藏版)》请在三一办公上搜索。
1、 CMMI ML-3 v1.2 C/C+语言编码规范(TS)文件编号: TS-G-05 编制日期审核日期批准日期变更记录版本号变更日期变更类型变更人变更摘要备注 目 录变更记录21.排版规范41.1.缩进41.2.空行41.3.分行41.4.分界符51.5.空格61.6.宏定义61.7.类定义61.8.其他72.命名规范82.1.原则82.2.命名注释82.3.命名风格统一82.4.变量命名93.变量结构103.1.赋值检查103.2.变量初始化103.3.单一功能结构体103.4.结构中的元素个数114.函数过程134.1.避免直接使用函数参数134.2.简单功能函数144.3.避免多参数函
2、数144.4.参数检查154.5.重复代码165.注释规范175.1.文件注释175.2.函数注释185.3.代码注释185.4.注释位置191. 排版规范1.1. 缩进程序块要采用缩进风格编写,缩进的长度为4个空格,方式为IDE自动缩进或TAB缩进。一行程序以小于65字符为宜,不要写得过长。对于由开发工具自动生成的代码可以有不一致。函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进风格 。1.2. 空行相对独立的程序块之间、变量说明之后必须加空行。示例: if (!valid_ni(ni) . / program code /
3、空行repssn_ind = ssn_dataindex.repssn_index;repssn_ni = ssn_dataindex.ni;1.3. 分行当语句超出或即将超出规定的列宽,遵循以下规则进行换行:1) 在逗号后换行。2) 在运算符,关键字前换行。3) 选择在较高级别(higher-level)的运算符处断开。4) 新的一行应该与上一行同一级别表达式的开头处对齐。5) 如果以上规则导致你的代码混乱或者使你的代码都堆挤在右边,那就代之以缩进8个空格。6) 规则1优先于规则2。当以上规则会导致代码混乱的时候自己采取更灵活的换行规则。示例:perm_count_msg.head.len
4、= NO7_TO_STAT_PERM_COUNT_LEN + STAT_SIZE_PER_FRAM * sizeof( _UL );act_task_tableframe_id * STAT_TASK_CHECK_NUMBER + index.occupied= stat_poiindex.occupied;act_task_tabletaskno.duration_true_or_false = SYS_get_sccp_statistic_state( stat_item );1.4. 分界符程序块的分界符(如C/C+语言的大括号和)应各独占一行并且位于同一列,同时与引用它们的语句左对齐。
5、在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式。示例:for (.) . / program codeif (.) . / program codeelse. / program codevoid example_fun( void ) . / program code1.5. 空格1. 关键字后需要有空格2. 运算符前后要有空格3. 功能段之间可以适当使用空格4. 要遵循手写英语中标点符号的规范, , 和 ; 后要加空格, ( 除外,例如:background = new Color(red, gr
6、een, blue);在操作符前后可以使用空格使代码增强代码可读性。对于与英文意义不同的操作符不遵循上述规则,例如:.和-后不用空格。1.6. 宏定义在宏定义中,尽量使用下面结构#ifndef#define #endif1.7. 类定义每个类定义中都要依次包含 public, protected , private 部分。每个部分中要最先给出构造函数和析构函数,成员函数按照函数名字母排序。1成员变量用m_ 做前缀;2类名已大写C开头,后面用pascal命名规则;3成员函数命名也按 pascal 命名规则如:class CMyClasspublic: void Display();private
7、: int m_iCount; ;1.8. 其他1每行只能写一条代码,且厂度不超过80个字符;2常量应定义为宏,枚举;3左 后不可以出现代码,右 前不可出现代码;4. 设计常量判断语句要把常量放左边,这样可以防止把 = = 写成 = ;5所有新变量在第一次使用都要进行初始化;6对有返回值的函数要对返回值进行判断;7设计到锁问题都需要成对的出现;2. 命名规范2.1. 原则能清楚表达对象的含义,尽可能避免二义性。2.2. 命名注释命名中若使用特殊约定或缩写,则要有注释说明。应该在源文件的开始之处,对文件中所使用的缩写或约定,特别是特殊的缩写,进行必要的注释说明。2.3. 命名风格统一己特有的命名
8、风格,要自始至终保持一致,不可来回变化。个人的命名风格,在符合所在项目组或产品组的命名规则的前提下,才可使用。(即命名规则中没有规定到的地方才可有个人命名风格)。用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。示例面是一些在软件中常用的反义词组:add / remove begin / end create / destroy insert / delete first / last get / releaseincrement / decrement put / getadd / delete lock / unlock open / closemin / max old / ne
9、w start / stopnext / previous source / target show / hidesend / receive source / destinationcut / paste up / down get / set示例:int min_sum;int max_sum;int add_user( BYTE *user_name );int delete_user( BYTE *user_name );2.4. 变量命名命名通常使用一个或多个单词,不用词组,使用简单结构表示。例如:用parameter_count替代number_of_parameters。命名可以
10、用数字、动词、形容词、副词,不要用前置词、代词等易混淆概念的词。禁止取单个字符(如i、j、k.),建议除了要有具体含义外,还能表明其变量类型、数据类型等,但i、j、k作局部循环变量是允许的。变量,尤其是局部变量,如果用单个字符表示,很容易敲错(如i写成j),而编译时又检查不出来,有可能为了这个小小的错误而花费大量的查错时间。除了编译开关/头文件等特殊应用,应避免使用_EXAMPLE_TEST_之类以下划线开始和结尾的定义。3. 变量结构3.1. 赋值检查当向公共变量传递数据时,要十分小心,防止赋与不合理的值或越界等现象发生。若有必要应进行合法性检查,以提高代码的可靠性、稳定性。3.2. 变量初
11、始化变量使用前需要初始化,在C/C+中引用未经赋值的指针,经常会引起系统崩溃。3.3. 单一功能结构体设计结构时应力争使结构代表一种现实事务的抽象,而不是同时代表多种。结构中的各元素应代表同一事务的不同侧面,而不应把描述没有关系或关系很弱的不同事务的元素放到同一结构中。示例:如下结构不太清晰、合理。typedef struct STUDENT_STRUunsigned char name8; /* students name */ unsigned char age; /* students age */ unsigned char sex; /* students sex, as follo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 02c 语言编码规范 02 语言 编码 规范

链接地址:https://www.31ppt.com/p-2384193.html