编程规范和范例8263.docx
《编程规范和范例8263.docx》由会员分享,可在线阅读,更多相关《编程规范和范例8263.docx(95页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、目 录1 排版62 注释113 标识符符命名184 可读性性205 变量、结结构226 函数、过过程287 可测性性368 程序效效率409 质量保保证4410 代码码编辑、编编译、审审查5011 代码码测试、维维护5212 宏53软件编程规范总则1 排版1 排版 1-1:程程序块要要采用缩缩进风格格编写,缩缩进的空空格数为为4个。说明:对于于由开发发工具自自动生成成的代码码可以有有不一致致。 1-2:相相对独立立的程序序块之间间、变量量说明之之后必须须加空行行。示例:如下下例子不不符合规规范。if (!vallid_ni(ni) . / proograam ccodeerepsssn_iin
2、d = sssn_dattaiindeex.reppssnn_inndexx;repsssn_nni = sssn_dattaiindeex.ni;应如下书写写if (!vallid_ni(ni) . / proograam ccodeerepsssn_iind = sssn_dattaiindeex.reppssnn_inndexx;repsssn_nni = sssn_dattaiindeex.ni; 1-3:较较长的语语句(80字字符)要要分成多多行书写写,长表表达式要要在低优优先级操操作符处处划分新新行,操操作符放放在新行行之首,划划分出的的新行要要进行适适当的缩缩进,使使排版整整齐,
3、语语句可读读。示例:perm_couunt_msgg.heead.lenn = NO77_TOO_STTAT_PERRM_CCOUNNT_LLEN + SSTATT_SIIZE_PERR_FRRAM * ssizeeof( _UUL );act_ttaskk_taableefrramee_idd * STAAT_TTASKK_CHHECKK_NUUMBEER + inndexx.ooccuupieed = sstatt_pooiiindeex.occcupiied;act_ttaskk_taableetaasknno.durratiion_truue_oor_ffalsse = SSYS_ge
4、tt_scccp_staatissticc_sttatee( sstatt_ittem );reporrt_oor_nnot_flaag = (tassknoo MAXX_ACCT_TTASKK_NUUMBEER) & (n7sstatt_sttat_iteem_vvaliid (staat_iitemm) & (actt_taask_tabbletassknoo.rresuult_datta != 00); 1-4:循循环、判判断等语语句中若若有较长长的表达达式或语语句,则则要进行行适应的的划分,长长表达式式要在低低优先级级操作符符处划分分新行,操操作符放放在新行行之首。示例:if (tas
5、sknoo maxx_acct_ttaskk_nuumbeer) & (n7sstatt_sttat_iteem_vvaliid (staat_iitemm) . / proograam ccodeefor (i = 0, j = 00; (i BuuffeerKeeywoordworrd_iindeex.worrd_llenggth) & (j NNewKKeywwordd.woord_lenngthh); i+, jj+) . / proograam ccodeefor (i = 0, j = 00; (i ffirsst_wwordd_leengtth) & (j ),后后不应加加空格。
6、说明:采用用这种松松散方式式编写代代码的目目的是使使代码更更加清晰晰。由于留空格格所产生生的清晰晰性是相相对的,所所以,在在已经非非常清晰晰的语句句中没有有必要再再留空格格,如果果语句已已足够清清晰则括括号内侧侧(即左括括号后面面和右括括号前面面)不需要要加空格格,多重重括号间间不必加加空格,因因为在CC/C+语言言中括号号已经是是最清晰晰的标志志了。在长语句中中,如果果需要加加的空格格非常多多,那么么应该保保持整体体清晰,而而在局部部不加空空格。给给操作符符留空格格时不要要连续留留两个以以上空格格。示例:(1) 逗逗号、分分号只在在后面加加空格。int aa, bb, cc; (2)比较较操
7、作符符, 赋值值操作符符=、 +=,算算术操作作符+、%,逻辑辑操作符符&、&,位域域操作符符= MAXX_TIIME_VALLUE) a = bb + c;a *= 2;a = bb 2;(3)!、+、-、&(地址址运算符符)等单单目操作作符前后后不加空空格。*p = a; / 内容操操作*与内内容之间间flag = !isEEmptty; / 非操作作!与内容容之间p = &memm; / 地址操操作& 与与内容之之间i+; / +,-与内容容之间(4)-、.前后不不加空格格。p-idd = pidd; / -指针针前后不不加空格格(5) iif、forr、whiile、swiitchh等
8、与后后面的括括号间应应加空格格,使iif等关关键字更更为突出出、明显显。if (aa = b & c d) 1-1:一一行程序序以小于于80字符符为宜,不不要写得得过长。仅供内部使用11软件编程规范总则2 注释2 注释 2-1:一一般情况况下,源源程序有有效注释释量必须须在200以上上。说明:注释释的原则则是有助助于对程程序的阅阅读理解解,在该该加的地地方都加加了,注注释不宜宜太多也也不能太太少,注注释语言言必须准准确、易易懂、简简洁。 2-2:说说明性文文件(如如头文件件.h文件件、.iinc文文件、.deff文件、编编译说明明文件.cfgg等)头头部应进进行注释释,注释释必须列列出:版版权
9、说明明、版本本号、生生成日期期、作者者、内容容、功能能、与其其它文件件的关系系、修改改日志等等,头文文件的注注释中还还应有函函数功能能简要说说明。示例:下面面这段头头文件的的头注释释比较标标准,当当然,并并不局限限于此格格式,但但上述信信息建议议要包含含在内。/* Coppyriightt (CC), 19888-119999, HHuawwei Tecch. Co., LLtd. Fille nnamee: / 文件件名 Autthorr: VVerssionn: Datte: / 作者、版版本及完完成日期期 Desscriiptiion: / 用于于详细说说明此程程序文件件完成的的主要功功
10、能,与与其他模模块 / 或函函数的接接口,输输出值、取取值范围围、含义义及参数数间的控控 / 制、顺顺序、独独立或依依赖等关关系 Othherss: / 其它它内容的的说明 Funnctiion Lisst: / 主要要函数列列表,每每条记录录应包括括函数名名及功能能简要说说明 11. . Hisstorry: / 修改改历史记记录列表表,每条条修改记记录应包包括修改改日期、修修改 / 者及及修改内内容简述述 11. DDatee: AAuthhor: MModiificcatiion: 22. .*/ 2-3:源源文件头头部应进进行注释释,列出出:版权权说明、版版本号、生生成日期期、作者者、
11、模块块目的/功能、主主要函数数及其功功能、修修改日志志等。示例:下面面这段源源文件的的头注释释比较标标准,当当然,并并不局限限于此格格式,但但上述信信息建议议要包含含在内。/* Coppyriightt (CC), 19888-119999, HHuawwei Tecch. Co., LLtd. FilleNaame: teest.cppp Autthorr: Verrsioon : Daate: Desscriiptiion: / 模模块描述述 Verrsioon: / 版版本信息息 Funnctiion Lisst: / 主主要函数数及其功功能 11. - Hisstorry: / 历历史
12、修改改记录 Daavidd 966/100/122 11.0 buuildd thhis mouudlee */说明:Deescrripttionn一项描描述本文文件的内内容、功功能、内内部各部部分之间间的关系系及本文文件与其其它文件件关系等等。Hiistoory是是修改历历史记录录列表,每每条修改改记录应应包括修修改日期期、修改改者及修修改内容容简述。 2-4:函函数头部部应进行行注释,列列出:函函数的目目的/功能、输输入参数数、输出出参数、返返回值、调调用关系系(函数数、表)等等。示例:下面面这段函函数的注注释比较较标准,当当然,并并不局限限于此格格式,但但上述信信息建议议要包含含在内。/
13、* Funnctiion: / 函数数名称 Desscriiptiion: / 函数数功能、性性能等的的描述 Callls: / 被本本函数调调用的函函数清单单 Callledd Byy: / 调用用本函数数的函数数清单 Tabble Acccesssed: / 被访访问的表表(此项项仅对于于牵扯到到数据库库操作的的程序) Tabble Upddateed: / 被修修改的表表(此项项仅对于于牵扯到到数据库库操作的的程序) Inpput: / 输入入参数说说明,包包括每个个参数的的作 / 用、取取值说明明及参数数间关系系。 Outtputt: / 对输输出参数数的说明明。 Retturnn:
14、/ 函数数返回值值的说明明 Othherss: / 其它它说明*/ 2-5:边边写代码码边注释释,修改改代码同同时修改改相应的的注释,以以保证注注释与代代码的一一致性。不不再有用用的注释释要删除除。 2-6:注注释的内内容要清清楚、明明了,含含义准确确,防止止注释二二义性。说明:错误误的注释释不但无无益反而而有害。规则2-77:避免免在注释释中使用用缩写,特特别是非非常用缩缩写。说明:在使使用缩写写时或之之前,应应对缩写写进行必必要的说说明。 2-8:注注释应与与其描述述的代码码相近,对对代码的的注释应应放在其其上方或或右方(对对单条语语句的注注释)相相邻位置置,不可可放在下下面,如如放于上上
15、方则需需与其上上面的代代码用空空行隔开开。示例:如下下例子不不符合规规范。例1:/* geet rrepllicaate subb syysteem iindeex aand nett inndiccatoor */repsssn_iind = sssn_dattaiindeex.reppssnn_inndexx;repsssn_nni = sssn_ddataainndexx.nni;例2:repsssn_iind = sssn_dattaiindeex.reppssnn_inndexx;repsssn_nni = sssn_ddataainndexx.nni;/* geet rreplli
16、caate subb syysteem iindeex aand nett inndiccatoor */应如下书写写/* geet rrepllicaate subb syysteem iindeex aand nett inndiccatoor */repsssn_iind = sssn_dattaiindeex.reppssnn_inndexx;repsssn_nni = sssn_ddataainndexx.nni; 2-9:对对于所有有有物理理含义的的变量、常常量,如如果其命命名不是是充分自自注释的的,在声声明时都都必须加加以注释释,说明明其物理理含义。变变量、常常量、宏宏的注释释应
17、放在在其上方方相邻位位置或右右方。示例:/* acctivve sstattisttic tassk nnumbber */#defiine MAXX_ACCT_TTASKK_NUUMBEER 110000#defiine MAXX_ACCT_TTASKK_NUUMBEER 110000 /* acctivve sstattisttic tassk nnumbber */ 2-10:数据结结构声明明(包括数数组、结结构、类类、枚举举等),如果果其命名名不是充充分自注注释的,必必须加以以注释。对对数据结结构的注注释应放放在其上上方相邻邻位置,不不可放在在下面;对结构构中的每每个域的的注释放放在此
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编程 规范 范例 8263
限制150内