C&C++ 源代码书写规范-软件编写规范.docx
《C&C++ 源代码书写规范-软件编写规范.docx》由会员分享,可在线阅读,更多相关《C&C++ 源代码书写规范-软件编写规范.docx(60页珍藏版)》请在三一办公上搜索。
1、版本号:TDCQC/C+源代码及其文档书写规范TDCQ公司20XX年05月目录1前言-1-2 DNC前缀和名空间-1-2.1 C代码使用DNC做前缀-1-2.2 C+代码使用DNC做名空间-1-3 C/C+源代码注释及书写规范-2-3.1 C/C+源代码注释-2-3.1.1 总体注释要求-3-3.1.2 说明性文件头部的注释-3-3.1.3 源文件头部的注释-4-3.1.4 函数头部的注释-5-3.1.5 对于if、whi1.e、do等其大括号内嵌代码块的注释-5-3.1.6 某个代码段的注释-6-3.1.7 注释的位置-6-3.1.8 对于所有物理含义的变量、常量及宏的注释-7-3.1.9
2、数据结构声明(包括数组、结构、类、枚举等)的注释-7-3.1.10 全局变量的注释-7-3.1.11 注释与所描述内容缩进的要求-8-3. 2C/C+源代码注释书写与帮助文档的自动生成-8-3.1.1 块注释-8-3.1.2 行注释-9-3.1.3 函数的摘要-9-3.1.4 函数的形参-9-3.1.5 函数的返回值-9-3.1.6 函数的注意事项(Remark)-10-3.1.7 补充说明-10-3.3C/C+代码书写规范-10-3.3.1 每行代码长度-10-3.3.2 口j丁JI可.-I1.-3.3.3 指针中*号的位置-11-3.3.4 全局函数的调用-12-3.3.5 关于if.e1
3、.seif.-12-3.3.6 与有关的规定-12-3.3.6.1 与有关代码的缩进格式-12-336.2的省略-12-3.3.7与空格有关的各项规定-13-3.3.7.1 对两目、三目运算符两边的空格的规定-13-3.3.7.2 3,7.2对for、Whi1.e、if等关键字之后空格的规定-13-3.3.7.3 对调用函数、宏时的空格规定-13-3.3.7.4 对类型强制转换时的空格规定-14-338代码缩进/对齐使用空格的规定-14-338.1 代码缩进一个4个空格-14-338.2 代码不缩进情况-14-3.3.9 与类相关的.h文件与.cpp文件-15-1.1.1 .1类的定义与实现-
4、15-1.1.2 类的合并-15-3.3.10 对变量的要求-15-3.3.10.1 对变量的要求-15-3.3.10.2 对变量类型的要求-16-3.3.11 对结构的要求-16-3.3.11.1 结构的功能要单一-16-3.3.11.2 不同结构间的关系要简单-17-3.3.12 函数的编写要求-18-3.3.12.1 函数编写的总体要求-18-3.3.12.2 函数名的要求-19-3.3.12.3 函数参数的要求-19-3.3.12.4 函数功能的要求-20-3.3.12.5 可重入函数编写-21-3.3.13 C/C+程序效率的要求-22-3.3.14 C/C+代码质量的要求-23-3
5、.3.14.1 代码质量保证优先原则-23-3.3.14.2 对内存及句柄操作的要求-23-3.3.14.3 其他要求-25-3.3.15 C/C+代码测试与维护-26-4C/C+源代码程序命名规范-27-4.1 总体命名要求-27-4.2 具体命名规范-28-4.2.1 工程名-28-4.2.2 文件名-28-4.2.3 函数名-28-4.2.4 变量名-28-4.2.5 类名-29-4.2.6 结构、宏、枚举及联合的名字-29-4.2.7 具有互斥意义的变量或相反动作的函数的命名-29-4.2.8 对命名中下划线的使用规定-30-5程序开发中相关文档撰写规定-30-5.1 程序设计与开发文
6、档-30-5.1.1 软件的开发背景-30-5.1.2 软件的结构设计-30-5.1.3 数据及资源文件说明-31-5.1.3.1 数据用途-31-5.1.3.2 数据格式-31-5.1.4 程序结构设计与开发-31-5.2 程序使用文档-31-5.2.1 软件系统的程序组成-31-5.2.2 开发环境要求、软件安装及环境配置-31-5.2.3 软件系统的使用方法-34-5.3 程序测试文档-36-5.3.1 测试环境-37-5.3.2 软件测试项目和功能-37-5.3.3 软件测试数据及格式-37-5.3.4 软件测试过程-37-5.4 软件程序调试文档-37-6程序及文档备份-39-6.1
7、 源程序及其文档备份-39-6.2 第三方软件(开发包或源码)及其文档备份-39-7词语缩写表-39-7.1 词语缩写的总体要求-39-7.2 通用词缩写表-39-7.3 专业词缩写表-44-8中心代码实例-46-8.1 *.h的编写实例-46-8.2 *.CPP的编写实例-49-1前言本规范规定了cc+源代码及其相应文档的书写规范。制定本规范的目的是统一北航数字导航中心研发部的cc语言源代码的书写风格、注释内容和相应文档的撰写,以便于代码的阅读、维护、管理、修订及使用。从制定完成即日起,程序员在编写C/C+代码的时候,需要严格遵守制定的C/C+源代码及其文档书写规范。此外,利用其他语言(如V
8、B、DeIPhi和MaUab等)编写的程序的程序员同样要遵守本规范。2DNC前缀和名空间21.C代码使用DNC做前缀C代码的接口函数一律使用DNCigita1.NavigationCenter,数字导航中心英文缩写)做前缀。例如C语言代码在函数前加DNC.前缀即可,例intDNC_FunName();(return0;)2C+代码使用DNC做名空间C+代码使用DNC做名空间。具体示例如下/*.h文件namespaceDNC(c1.assCDncDemopub1.ic:CDncDemoO;-CDncDemoO;;)/*.cpp文件namespaceDNC(CDncDemo:CDncDemo()(
9、)CDncDemo:-CDncDemoO()在使用CDncDemo的文件中加入:usingnamespaceDNC;/然后定义对象CDncDemodncobj;或者直接DNC:CDncDemodncobj;3C/C+源代码注释及书写规范C/C+源代码注释除非极其简单,否则对函数应有注释说明。内容包括:功能、入口/出口参数,必要时还可有备注或补充说明。推荐采取特定的格式(见第3.2条),以方便用软件自动生成帮助文档。3.1.1 总体注释要求 一般情况下,源程序有效注释量必须在20%以上; 注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁
10、; 边写代码边注释,修改代码同时修改相应的注释,以保证注释与代码的一致性,不再有用的注释要删除; 注释的内容要清楚、明了,含义准确,防止注释二义性,错误的注释不但无益反而有害; 除非必要,不应在代码或表达中间插入注释,否则容易使代码可理解性变差; 避免在注释中使用缩写,特别是非常用缩写,在使用缩写时或之前,应对缩写进行必要的说明; 注释格式尽量统一,建议使用/*管 建议多使用中文,除非能用非常流利准确的英文表达。3.1.2 说明性文件头部的注释说明性文件(如头文件.h文件、.cc+文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、
11、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。Copyright(C),2008-2022,DNCBUAAFi1.ename:/文件名Author:Version:Date:作者、版本及完成日期Others:Description:/用于详细说明此程序文件完成的主要功能,与其他模块或函数的接口,输出值、取值范围、含义及参数间的控/制、顺序、独立或依赖等关系其它内容的说明Function1.ist:/主要函数列表,每条记录应包括函数名及功能简要说明History:/修改历史记录列表
12、,每条修改记录应包括修改口期、修改者及修改内容简述1.Date:Author:Modification:2.3.1.3源文件头部的注释源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。Copyright(C),2008-2022,DNCBUAAFi1.eName:test.cppAuthor:Version:Date:作者、版本及完成日期Description:/模块描述Version:版本信息Function1.ist:/主要函数及其功能1.His
13、tory:/历史修改记录David96/10/121.0bui1.dthismoud1.e说明:Description一项描述本文件的内容、功能、内部各部分之间的关系及本文件与其它文件关系等。History是修改历史记录列表,每条修改记录应包括修改日期、修改者及修改内容简述。3.1.4 函数头部的注释函数头部应进行注释,列出:函数的目的/功能、输入参数、输出参数、返回值、调用关系(函数、表)等。示例:下面这段函数的注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。Function:函数名称Description:/函数功能、性能等的描述Ca1.1.s:/被本函数调用的函数清单Ca
14、1.1.edBy:/调用本函数的函数清单Tab1.eAccessed:/被访问的表(此项仅对于牵扯到数据库操作的程序)Tab1.eUpdated:/被修改的表(此项仅对于牵扯到数据库操作的程序)Input:/输入参数说明,包括每个参数的作/用、取值说明及参数间关系。Output:对输出参数的说明。Return:函数返回值的说明Others:其它说明3.1.5 对于if、whi1.e,do等其大括号内嵌代码块的注释比较长(需拖动滚动条来看)或者多层嵌套时,在结尾的“”后要加上其所对应的语句的注释说明。例1:if(.)(/programcodewhi1.e(indexMAXJNDEX)(/prog
15、ramcode*endofwhi1.e(indexMAX_INDEX)*/指明该条WhiIe语句结束*endofif(.)*/指明是哪条if语句结束例2:BOO1.DNC_SaveToFi1.e(constcharcszFi1.eName,BOO1.bCanRep1.ace*=TRUE*);3.1.6 某个代码段的注释描述某个代码段的注释,可以给注释描述的代码段外围加上,帮助阅读。例:/代码段实现功能或意图描述(代码段)3.1.7 注释的位置注释应与其描述的代码相近,对代码的注释应放在其上方或右方相邻位置,不可放在下面,如放于上方则需与其上面的代码用空行隔开。示例:如下例子不符合规范。例1:*
16、getrep1.icatesubsystemindexandnetindicator*/repssn_ind=ssn_dataindex.repssn-index;repssn_ni=ssn_dataindex.ni;例2:repssn_ind=ssn_dataindex.repssn_index;repssn_ni=ssn_dataindex.ni;*getrep1.icatesubsystemindexandnetindicator*/应如下书写*getrep1.icatesubsystemindexandnetindicator*/repssn_ind=ssn_dataindex.rep
17、ssn-index;repssn_ni=ssn_dataindex.ni;1.1.1 于所有物理含义的变量、常量及宏的注释对于所有物理含义的变量、常量,如果其命名不是充分自注释的,在声明时都必须加以注释,说明其物理含义。变量、常量、宏的注释应放在其上方相邻位置或右方。*activestatistictasknumber*/#defineMAX_ACT_TASK_NUMBERIOOO#defineMAX_ACT_TASK_NUMBER1000*activestatistictasknumber*/1.1.9 数据结构声明(包括数组、结构、类、枚举等)的注释数据结构声明(包括数组、结构、类、枚举等
18、),如果其命名不是充分自注释的,必须加以注释。对数据结构的注释应放在其上方相邻位置,不可放在下面;对结构中的每个域的注释放在此域的右方。示例:可按如下形式说明枚举/数据/联合结构。*seepinterfacewithseepuserprimitivemessagename*/enumDNC_USER_PR1MITIVE(N_UNITDATAJND;*C1.nCnotifydncUSerunitdatacome*/N_NOTICE_IND;*dncnotifyusertheNo.7networkcannot*/*transmissionthismessage*/N_UNITDATA_REQ;*d
19、ncusersunitdatatransmissionrequest*/);1.1.10 全局变量的注释全局变量要有较详细的注释,包括对其功能、取值范围、哪些函数或过程存取它以及存取时注意事项等的说明。示例:*TheErrorCodewhenDNCtrans1.ate*/*G1.oba1.Tit1.efai1.ure,asfo1.1.ows*/变量作用、含义*0-SUCCESS1-GTTab1.eerror*/*2GTerrorOthers-nouse*/变量取值范围*on1.yfunctionDNC-Trans1.ate()in*/*thismodua1.canmodifyit,andoth
20、er*/*modu1.ecanvisititthroughca1.1.*/*thefunctionDNC-GetGTTransErrorCodeO*/使用方法BYTEg_GTTranErrorCode;1.1.11 注释与所描述内容缩进的要求注释与所描述内容进行同样的缩排,做到程序排版整齐,并方便注释的阅读与理解。例如voidDNC-Examp1.eFun(void)(*codeonecomments*/CodeB1.ockOne*codetwocomments*/CodeB1.ockTwo)3.2 CC+源代码注释书写与帮助文档的自动生成本节规定的C/C+源代码注释书写规范主要是利用DOXy
21、gen工具自动生成帮助文档。对于那些不希望提取为帮助文档的注释,请参照本规范的3.1节。3.2.1 块注释格式开头:/*结尾:*/例:*.Thisisab1.ockcomment.*/3.2.2 行注释格式开头:/例:/Thisisa1.inecomment.323函数的摘要格式在函数声明主体开头的注释块中加上控制符:brief例:/*brief用于从输入流读取一个字符,不回显*/intgetch(void);3.2.4 函数的形参格式在函数声明主体开头的注释块中加上控制符:param例:/* parambuf1.缓冲区1* ParambUf2缓冲区2* paramcount字符的个数*/*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C&C+ 源代码书写规范-软件编写规范 C+ 源代码 书写 规范 软件 编写
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-1804667.html