编程规范和范例.docx

上传人:博****1 文档编号:498702870 上传时间:2022-07-17 格式:DOCX 页数:44 大小:92.15KB
返回 下载 相关 举报
编程规范和范例.docx_第1页
第1页 / 共44页
编程规范和范例.docx_第2页
第2页 / 共44页
编程规范和范例.docx_第3页
第3页 / 共44页
编程规范和范例.docx_第4页
第4页 / 共44页
编程规范和范例.docx_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《编程规范和范例.docx》由会员分享,可在线阅读,更多相关《编程规范和范例.docx(44页珍藏版)》请在金锄头文库上搜索。

1、编程规范基本编程规范和范例摘要I文档描述编程中基本的规范要求第1页/共45页说明:错误的注释不但无益反而有害。7. 避免在注释中使用缩写,特别是非常用缩写。说明:在使用缩写时或之前,应对缩写进行必要的说明。8. 注释应与其描述的代码相近,对代码的注释应放在其上方或右方(对单条语句的注释)相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。示例:如下例子不符合规范。例1:/*getreplicatesubsystemindexandnetindicator*/repssn_ind=ssn_dataindex.repssn_index;repssn_ni=ssn_dataindex.n

2、i;例2:repssn_ind=ssn_dataindex.repssn_index;repssn_ni=ssn_dataindex.ni;/*getreplicatesubsystemindexandnetindicator*/应如下书写/*getreplicatesubsystemindexandnetindicator/repssn_ind=ssn_dataindex.repssn_index;repssn_ni=ssn_dataindex.ni;对于所有有物理含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加以注释,说明其物理含义。变量、常量、宏的注释应放在其上方相邻位置或

3、右方。示例:/*activestatistictasknumber夫/publicstaticintMAX_ACT_TASK_NUMBER=1000;publicstaticintMAX_ACT_TASK_NUMBER=1000;/*activestatistictasknumber*/数据结构声明(包括数组、结构、类、枚举等),如果其命名不是充分自注释的,必须加以注释。对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释放在此域的右方。示例:可按如下形式说明枚举/数据/联合结构。/*seepinterfacewithseepuserprimitivemessagenam

4、e夫/enumSCCP_USER_PRIMITIVE(N_UNITDATA_INDf/大seepnotifyseepuserunitdatacome/N_NOT1CE_IND,/*seepnotifyusertheNo.7networkcannot*/*transmissionthismessage夫/N_UNITDATA_REQr/*seepuser1sunitdatatransmissionrequest*/哪些函数或过程存取它以及);11-全局变量要有较详细的注释,包括对其功能、取值范围、存取时注意事项等的说明。示例:TheErrorCodewhenSCCPtranslate夫Globa

5、lTitleGlobalTitlefailure,asfollows*/变量作用、含义0SUCCESS1GTTableerror*2GTerrorOthersnouse夫/变量取值范围onlyfunctionSCCPTranslate()in*thismodualcanmodifyit,andothermodulecanvisititthroughcall*/使用方法/使用方法thefunctionGetGTTransErrorCode()夫BYTEgGTTranErrorCode;12注释与所描述内容进行同样的缩排。说明:可使程序排版整齐,并方便注释的阅读与理解。示例:如下例子,排版不整齐,

6、阅读稍感不方便。voidexample_fun(void)(/*codeonecomments*/CodeBlockOne/*codetwocomments夫CodeBlockTwo)应改为如下布局。voidexample_fun(void)*codeonecomments*CodeBlockOne/codetwocomments*/CodeBlockTwo将注释与其上面的代码用空行隔开。示例:如下例子,显得代码过于紧凑。/*codeonecomments*/programcodeone/*codetwocomments夫/programcodetwo应如下书写/*codeonecomment

7、s夫/programcodeone/codetwocomments/programcodetwo对变量的定义和分支语句(条件分支、循环语句等)必须编写注释。说明:这些语句往往是程序实现某一特定功能的关键,对于维护人员来说,良好的注释帮助更好的理解程序,有时甚至优于看设计文档。13. 对于switch语句下的case语句,如果因为特殊情况需要处理完一个case后进入下一个case处理,必须在该case语句处理完、下一个case语句前加上明确的注释。说明:这样比较清楚程序编写者的意图,有效防止无故遗漏break语句。示例(注意斜体加粗部分):caseCMD_UP:ProcessUp();break

8、;caseCMD_DOWN:ProcessDown();break;caseCMD_FWD:ProcessFwd();if()break;)else(PracessCFW_B();/nowjumpintocaseCMD_AcaseCMD_A:ProcessA();break;caseCMD_B:ProcessB();break;caseCMD_C:ProcessC();break;caseCMD_D:ProcessD();break;14. 避免在一行代码或表达式的中间插入注释。说明:除非必要,不应在代码或表达中间插入注释,否则容易使代码可理解性变差。17 .通过对函数或过程、变量、结构等正确

9、的命名以及合理地组织代码的结构,使代码成为自注释的。说明:清晰准确的函数、变量等的命名,可增加代码可读性,并减少不必要的注释。18. 在代码的功能、意图层次上进行注释,提供有用、额外的信息。说明:注释的目的是解释代码的目的、功能和采用的方法,提供代码以外的信息,帮助读者理解代码,防止没必要的重复注释信息。示例:如下注释意义不大。/*ifreceive_flagisTRUE夫/if(receive_flag)而如下的注释则给出了额外有用的信息。/*ifmtpreceiveamessagefromlinks*/if(receive_flag)在程序块的结束行右方加注释标记,以表明某程序块的结束。说

10、明:当代码段较长,特别是多重嵌套时,这样做可以使代码更清晰,更便于阅读。示例:参见如下例子。if(.)(/programcodewhile(indexMAX_INDEX)(/programcode/*endofwhile(indexAddUserm_AddUse匕允许。4. 除非必要,不要用数字或较奇怪的字符来定义标识符。示例:如下命名,使人产生疑惑。int_EXAMPLE_O_TEST_int_EXAMPLE_1_TEST_voidset_sls00(BYTEsis);应改为有意义的单词命名int_EXAMPLE_UNIT_TEST_int_EXAMPLE_ASSERT_TEST_voids

11、et_udt_msg_sls(BYTEsis);在同一软件产品内,应规划好接口部分标识符(变量、结构、函数及常量)的命名,防止编译、链接时产生冲突。说明:对接口部分的标识符应该有更严格限制,防止冲突。如可规定接口部分的变量与常量之前加上“模块”标识等。5. 用正确的反义词组命名具有互斥意义的变量或相反动作的函数等。说明:下面是一些在软件中常用的反义词组。add/removebegin/endinsert/deletefirst/lastincrement/decrementadd/deletelock/unlockmin/maxold/newcreate/destroyget/releaseput/getopen/closestart/stopnext/previoussource/targetshow/hidesend/receivesource/destinationcut/pasteup/down示例:intminsum;intmaxsum;intadduser(BYTE*username);intdeleteuser(BYTE*username);6. 除了编译开关/头文件等特殊应用,应避免使用_EXAMPLE_TEST_:J以下划线开始和结尾的定义。一可

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号