软件编程规范总则33193138811.docx
《软件编程规范总则33193138811.docx》由会员分享,可在线阅读,更多相关《软件编程规范总则33193138811.docx(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件编程规规范总则目 录1 排版62 注释113 标识符符命名184 可读性性205 变量、结结构226 函数、过过程287 可测性性368 程序效效率409 质量保保证4410 代码码编辑、编编译、审查查5011 代码码测试、维维护5212 宏531 排版 1-1:程程序块要采采用缩进风风格编写,缩缩进的空格格数为4个。说明:对于于由开发工工具自动生生成的代码码可以有不不一致。 1-2:相相对独立的的程序块之之间、变量量说明之后后必须加空空行。示例:如下下例子不符符合规范。if (!valiid_nii(ni) . / prrograam cooderepsssn_innd = ssn_da
2、taainddex.repsssn_iindexx;repsssn_nii = ssn_dataainddex.ni;应如下书写写if (!valiid_nii(ni) . / prrograam cooderepsssn_innd = ssn_dataainddex.repsssn_iindexx;repsssn_nii = ssn_dataainddex.ni; 1-3:较较长的语句句(800字符)要要分成多行行书写,长长表达式要要在低优先先级操作符符处划分新新行,操作作符放在新新行之首,划划分出的新新行要进行行适当的缩缩进,使排排版整齐,语语句可读。示例:perm_counnt_mssg
3、.heead.llen = NO77_TO_STATT_PERRM_COOUNT_LEN + SSTAT_SIZEE_PERR_FRAAM * sizeeof( _UL );act_ttask_tabllefrrame_id * STAAT_TAASK_CCHECKK_NUMMBER + inndex.occcupieed = sstat_poiindeex.ooccuppied;act_ttask_tablletaasknoo.duuratiion_ttrue_or_ffalsee = SSYS_gget_ssccp_stattistiic_sttate( staat_ittem );rep
4、orrt_orr_nott_flaag = (taasknoo MMAX_AACT_TTASK_NUMBBER) & (n7sstat_statt_iteem_vaalid (staat_ittem) & (actt_tassk_taabletaskkno.resuult_ddata != 00); 1-4:循循环、判断断等语句中中若有较长长的表达式式或语句,则则要进行适适应的划分分,长表达达式要在低低优先级操操作符处划划分新行,操操作符放在在新行之首首。示例:if (taskkno maxx_actt_tassk_nuumberr) & (nn7staat_sttat_iitem_valii
5、d (sstat_itemm) . / prrograam coodefor (i = 0, jj = 00; (ii BBuffeerKeyyworddworrd_inndex.worrd_leengthh) & (jj NNewKeeyworrd.woord_llengtth); i+, j+) . / prrograam coodefor (i = 0, jj = 00; (i firrst_wword_lenggth) & (j ),后不不应加空格格。说明:采用用这种松散散方式编写写代码的目目的是使代代码更加清清晰。由于留空格格所产生的的清晰性是是相对的,所所以,在已已经非常清清晰的语
6、句句中没有必必要再留空空格,如果果语句已足足够清晰则则括号内侧侧(即左括号号后面和右右括号前面面)不需要加加空格,多多重括号间间不必加空空格,因为为在C/CC+语言言中括号已已经是最清清晰的标志志了。在长语句中中,如果需需要加的空空格非常多多,那么应应该保持整整体清晰,而而在局部不不加空格。给给操作符留留空格时不不要连续留留两个以上上空格。示例:(1) 逗逗号、分号号只在后面面加空格。int aa, b, c; (2)比较较操作符, 赋值操操作符=、 +=,算术术操作符+、%,逻逻辑操作符符&、&,位位域操作符符= MMAX_TTIME_VALUUE) a = bb + cc;a *= 2;a
7、 = bb 22;(3)!、+、-、&(地地址运算符符)等单目目操作符前前后不加空空格。*p = a; / 内内容操作*与内内容之间flag = !iisEmppty; / 非非操作!与内容容之间p = &mem; / 地地址操作& 与与内容之间间i+; / +,-与内容之之间(4)-、.前后后不加空格格。p-idd = ppid; / -指指针前后不不加空格(5) iif、for、whille、swittch等与与后面的括括号间应加加空格,使使if等关键键字更为突突出、明显显。if (aa = b & c d) 1-1:一一行程序以以小于800字符为宜宜,不要写写得过长。 2 注释 2-1:
8、一一般情况下下,源程序序有效注释释量必须在在20以上上。说明:注释释的原则是是有助于对对程序的阅阅读理解,在在该加的地地方都加了了,注释不不宜太多也也不能太少少,注释语语言必须准准确、易懂懂、简洁。 2-2:说说明性文件件(如头文文件.h文件、.iinc文件件、.deef文件、编编译说明文文件.cffg等)头头部应进行行注释,注注释必须列列出:版权权说明、版版本号、生生成日期、作作者、内容容、功能、与与其它文件件的关系、修修改日志等等,头文件件的注释中中还应有函函数功能简简要说明。示例:下面面这段头文文件的头注注释比较标标准,当然然,并不局局限于此格格式,但上上述信息建建议要包含含在内。/*
9、Coppyrigght (C), 19888-19999, HHuaweei Teech. Co., Ltdd. Fille naame: / 文件名 Autthor: VVersiion: DDate: / 作者、版版本及完成成日期 Desscripptionn: / 用于详细细说明此程程序文件完完成的主要要功能,与与其他模块块 / 或函数的的接口,输输出值、取取值范围、含含义及参数数间的控 / 制、顺序序、独立或或依赖等关关系 Othhers: / 其它内容容的说明 Funnctioon Liist: / 主要函数数列表,每每条记录应应包括函数数名及功能能简要说明明 11. . Hisst
10、oryy: / 修改历史史记录列表表,每条修修改记录应应包括修改改日期、修修改 / 者及修改改内容简述述 11. Daate: Auuthorr: Moodifiicatiion: 22. .*/ 2-3:源源文件头部部应进行注注释,列出出:版权说说明、版本本号、生成成日期、作作者、模块块目的/功能、主主要函数及及其功能、修修改日志等等。示例:下面面这段源文文件的头注注释比较标标准,当然然,并不局局限于此格格式,但上上述信息建建议要包含含在内。/* Coppyrigght (C), 19888-19999, HHuaweei Teech. Co., Ltdd. FilleNamme: ttes
11、t.cpp Autthor: Verssion : DDate: Desscripptionn: / 模块描描述 Verrsionn: / 版本信信息 Funnctioon Liist: / 主要函函数及其功功能 11. - Hisstoryy: / 历史修修改记录 Davvid 966/10/12 11.0 bbuildd thiis mooudlee */说明:Deescriiptioon一项描描述本文件件的内容、功功能、内部部各部分之之间的关系系及本文件件与其它文文件关系等等。Hisstoryy是修改历历史记录列列表,每条条修改记录录应包括修修改日期、修修改者及修修改内容简简述。 2-4
12、:函函数头部应应进行注释释,列出:函数的目目的/功能、输输入参数、输输出参数、返返回值、调调用关系(函函数、表)等等。示例:下面面这段函数数的注释比比较标准,当当然,并不不局限于此此格式,但但上述信息息建议要包包含在内。/* Funnctioon: / 函数名称称 Desscripptionn: / 函数功能能、性能等等的描述 Callls: / 被本函数数调用的函函数清单 Callled By: / 调用本函函数的函数数清单 Tabble AAccesssed: / 被访问的的表(此项项仅对于牵牵扯到数据据库操作的的程序) Tabble UUpdatted: / 被修改的的表(此项项仅对于牵
13、牵扯到数据据库操作的的程序) Inpput: / 输入参数数说明,包包括每个参参数的作 / 用、取值值说明及参参数间关系系。 Outtput: / 对输出参参数的说明明。 Retturn: / 函数返回回值的说明明 Othhers: / 其它说明明*/ 2-5:边边写代码边边注释,修修改代码同同时修改相相应的注释释,以保证证注释与代代码的一致致性。不再再有用的注注释要删除除。 2-6:注注释的内容容要清楚、明明了,含义义准确,防防止注释二二义性。说明:错误误的注释不不但无益反反而有害。规则2-77:避免在在注释中使使用缩写,特特别是非常常用缩写。说明:在使使用缩写时时或之前,应应对缩写进进行必
14、要的的说明。 2-8:注注释应与其其描述的代代码相近,对对代码的注注释应放在在其上方或或右方(对对单条语句句的注释)相相邻位置,不不可放在下下面,如放放于上方则则需与其上上面的代码码用空行隔隔开。示例:如下下例子不符符合规范。例1:/* geet reepliccate sub systtem iindexx andd nett inddicattor */repsssn_innd = ssn_dataainddex.repsssn_iindexx;repsssn_nii = sssn_ddataindeex.nni;例2:repsssn_innd = ssn_dataainddex.reps
15、ssn_iindexx;repsssn_nii = sssn_ddataindeex.nni;/* geet reepliccate sub systtem iindexx andd nett inddicattor */应如下书写写/* geet reepliccate sub systtem iindexx andd nett inddicattor */repsssn_innd = ssn_dataainddex.repsssn_iindexx;repsssn_nii = sssn_ddataindeex.nni; 2-9:对对于所有有有物理含义义的变量、常常量,如果果其命名不不是充分自
16、自注释的,在在声明时都都必须加以以注释,说说明其物理理含义。变变量、常量量、宏的注注释应放在在其上方相相邻位置或或右方。示例:/* acctivee staatisttic ttask numbber */#defiine MMAX_AACT_TTASK_NUMBBER 11000#defiine MMAX_AACT_TTASK_NUMBBER 11000 /* aactivve sttatisstic taskk nummber */ 2-10:数据结构构声明(包括数组组、结构、类类、枚举等等),如果其其命名不是是充分自注注释的,必必须加以注注释。对数数据结构的的注释应放放在其上方方相邻位置
17、置,不可放放在下面;对结构中中的每个域域的注释放放在此域的的右方。示例:可按按如下形式式说明枚举举/数据/联合结构构。/* scccp iinterrfacee witth scccp uuser primmitivve meessagge naame */enum SCCCP_USSER_PPRIMIITIVEE NN_UNIITDATTA_INND, /* scccp nnotiffy scccp uuser unitt datta coome */ NN_NOTTICE_IND, /* scccp nnotiffy usser tthe NNo.7 netwwork can not */
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 编程 规范 总则 33193138811
限制150内