您好,欢迎访问三七文档
标题软件代码编程规范编号F-03-007页次1/59制订部门研发部版次A000制订日期2008-12-021软件代码编程规范制订:刘志敏审核:______批准:______文件修订记录文件名称工程设计变更管理程序编号F-02-002版次修订内容修改页次修订日期修订者备注A00新版本发行2008-12-02刘志敏标题软件代码编程规范编号F-03-007页次2/59制订部门研发部版次A000制订日期2008-12-0221.目的1.1.标准化软件工作流程1.2.规范编程代码条理清晰,提高程序扩展性1.3.提高软件发布质量,减少出错几率1.4.规范注释和代码风格简单易读,方便格式化处理便于后期移交和维护2.适用范围软件系统架构师、软件工程师、软件技术总监/副总监、软件主管3.代码规范3.1.排版3.1.1.程序块要采用缩进风格编写,缩进采用TAB键方式。(TAB键设置的空格数为4个)说明:对于由开发工具自动生成的代码可以有不一致3.1.2.较长的语句(80字符)要分成多行书写,长表达式要在低优先级操作符处划分新行,操作符放在新行之首,划分出的新行要进行适当的缩进,使排版整齐,语句可读,示例:perm_count_msg.head.len=NO7_TO_STAT_PERM_COUNT_LEN+STAT_SIZE_PER_FRAM*sizeof(_UL);act_task_table[frame_id*STAT_TASK_CHECK_NUMBER+index].occupied=stat_poi[index].occupied;act_task_table[taskno].duration_true_or_false=SYS_get_sccp_statistic_state(stat_item);report_or_not_flag=((tasknoMAX_ACT_TASK_NUMBER)&&(n7stat_stat_item_valid(stat_item))&&(act_task_table[taskno].result_data!=0));if((tasknomax_act_task_number)标题软件代码编程规范编号F-03-007页次3/59制订部门研发部版次A000制订日期2008-12-023&&(n7stat_stat_item_valid(stat_item))){...//programcode}n7stat_str_compare((BYTE*)&stat_object,(BYTE*)&(act_task_table[taskno].stat_object),sizeof(_STAT_OBJECT));3.1.3.不允许把多个短语句写在一行中,即一行只写一条语句示例:如下例子不符合规范rect.length=0;rect.width=0;应如下书写rect.length=0;rect.width=0;3.1.4.if、for、do、while、case、switch、default等语句自占一行,且if、for、do、while等语句的执行语句部分无论多少都要加括号{}示例:如下例子不符合规范if(pUserCR==NULL)return;应如下书写:if(pUserCR==NULL){return;}3.1.5.函数或过程的开始、结构的定义及循环、判断等语句中的代码都要采用缩进风格,case语句下的情况处理语句也要遵从语句缩进要求3.1.6.程序块的分界符(如C/C++语言的大括号‘{’和‘}’)应各独占一行并且位于同一标题软件代码编程规范编号F-03-007页次4/59制订部门研发部版次A000制订日期2008-12-024列,同时与引用它们的语句左对齐。在函数体的开始、类的定义、结构的定义、枚举的定义以及if、for、do、while、switch、case语句中的程序都要采用如上的缩进方式.示例:如下例子不符合规范for(...){...//programcode}if(...){...//programcode}voidexample_fun(void){...//programcode}应如下书写。for(...){...//programcode}if(...){...//programcode}标题软件代码编程规范编号F-03-007页次5/59制订部门研发部版次A000制订日期2008-12-025voidexample_fun(void){...//programcode}3.1.7.在两个以上的关键字、变量、常量进行对等操作时,它们之间的操作符之前、之后或者前后要加空格;进行非对等操作时,如果是关系密切的立即操作符(如-),后不应加空格说明:采用这种松散方式编写代码的目的是使代码更加清晰由于留空格所产生的清晰性是相对的,所以,在已经非常清晰的语句中没有必要再留空格,如果语句已足够清晰则括号内侧(即左括号后面和右括号前面)不需要加空格,多重括号间不必加空格,因为在C/C++语言中括号已经是最清晰的标志了。在长语句中,如果需要加的空格非常多,那么应该保持整体清晰,而在局部不加空格。给操作符留空格时不要连续留两个以上空格示例:(1)逗号、分号只在后面加空格。inta,b,c;(2)比较操作符,赋值操作符=、+=,算术操作符+、%,逻辑操作符&&、&,位域操作符、^等双目操作符的前后加空格。if(current_time=MAX_TIME_VALUE)a=b+c;a*=2;a=b^2;(3)!、~、++、--、&(地址运算符)等单目操作符前后不加空格。*p='a';//内容操作*与内容之间flag=!isEmpty;//非操作!与内容之间p=&mem;//地址操作&与内容之间i++;//++,--与内容之间标题软件代码编程规范编号F-03-007页次6/59制订部门研发部版次A000制订日期2008-12-026(4)-、.前后不加空格。p-id=pid;//-指针前后不加空格(5)if、for、while、switch等与后面的括号间应加空格,使if等关键字更为突出、明显。if(a=b&&cd)3.1.8.一行程序以小于80字符为宜,不要写得过长3.1.9.在使用“==”判断语句时,如有常数,常数最好放在“==”左边,以避免少写成“=”时,编译器不能不错3.2.注释3.2.1.说明:注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁3.2.2.说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内:/*************************************************Copyright(C),1998-2007,TendaTech.Co.,Ltd.Filename://文件名Author:Version:Date://作者、版本及完成日期Description://用于详细说明此程序文件完成的主要功能,与其他模块//或函数的接口,输出值、取值范围、含义及参数间的控//制、顺序、独立或依赖等关系Others://其它内容的说明FunctionList://主要函数列表,每条记录应包括函数名及功能简要说明标题软件代码编程规范编号F-03-007页次7/59制订部门研发部版次A000制订日期2008-12-0271.....History://修改历史记录列表,每条修改记录应包括修改日期、修改//者及修改内容简述1.Date:Author:Modification:2....*************************************************/3.2.3.源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内:/***********************************************************Copyright(C),1998-2007,TendaTech.Co.,Ltd.FileName:test.cppAuthor:Version:Date:Description://模块描述Version://版本信息FunctionList://主要函数及其功能1.-------History://历史修改记录authortimeversiondescDavid96/10/121.0buildthismoudle***********************************************************/说明:Description一项描述本文件的内容、功能、内部各部分之间的关系及本文件与其它文件关系等。History是修改历史记录列表,每条修改记录应包括修改日期、修改者及修改内容简述3.2.4.函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等标题软件代码编程规范编号F-03-007页次8/59制订部门研发部版次A000制订日期2008-12-028示例:下面这段函数的注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内:/*************************************************Function://函数名称Description://函数功能、性能等的描述Input://输入参数说明,包括每个参数的作//用、取值说明及参数间关系。Output://对输出参数的说明。Return://函数返回值的说明Others://其它说明*************************************************/3.2.5.边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性。不再有用的注释要删除.3.2.6.注释的内容要清楚、明了,含义准确,防止注释二义性说明:错误的注释不但无益反而有害3.2.7.避免在注释中使用缩写,特别是非常用缩写说明:在使用缩写时或之前,应对缩写进行必要的说明3.2.8.注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开:示例:如下例子不符合规范例1:/*getreplicatesubsystemindexandnetindicator*/repssn_ind=ssn_data[index].repssn_index;repssn_ni=ssn_data[index].ni;例2:标题软件代码编程规范编号F-03-007页次9/59制订部门研发部版次A000制订日期2008-12-029repssn_ind=ssn_data[index].repssn_index;repssn_ni=ssn_data[index].ni;/*getreplicatesubsystemindexandnetindicator*/应如下书写/*getreplicatesubsystemindexandnetindicator*/repssn_ind=ssn_data[index].repssn_index;repssn_ni=ssn_data[index].ni;3.2.9.对于所有有物理含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加以注释,说明其物理含义。变量、常量、宏的注释应放在其上方相邻位置或右方示例:/*activestatistictasknumb
本文标题:代码编程规范
链接地址:https://www.777doc.com/doc-3361945 .html