C++代码规范Word格式.docx
- 文档编号:16017873
- 上传时间:2022-11-17
- 格式:DOCX
- 页数:97
- 大小:212.64KB
C++代码规范Word格式.docx
《C++代码规范Word格式.docx》由会员分享,可在线阅读,更多相关《C++代码规范Word格式.docx(97页珍藏版)》请在冰豆网上搜索。
2.3.3函数及数组的命名9
2.3.4结构类型命名10
2.3.5命名长度10
2.3.6Windows应用程序命名规则10
2.4程序规则12
2.4.1变量声明和定义12
2.4.2数组、字符串13
2.4.3函数声明和定义14
2.4.4语句16
2.5排版格式规则16
2.5.1源代码文件17
2.5.2空行17
2.5.3代码行17
2.5.4代码行内的空格18
2.5.5对齐19
2.5.6分行20
2.5.7表达式20
2.5.8函数22
2.5.9语句22
2.5.10变量、类型声明23
2.5.11修饰符的位置23
2.5.12类的版式24
2.6注释格式24
2.6.1介绍24
2.6.2注释基本规则25
2.6.3程序注释25
2.6.4模块注释26
265函数注释
27
3.代码管理
错误!
未定义书签
3.1版本管理
61
3.2代码更新
1.介绍
本文的宗旨在于规范化源代码的编写,满足系统面向对象要求、可读性要求、正确性与容错性要求和可重用性要求。
适用范围:
本文档描述C++语言编程规范,适用于公司所有C++程序的编制
2.编码规范
2.1文件结构
每个C++/C程序通常分为两个文件。
一个文件用于保存程序的声明(declaration),称为头文件。
另一个文件用于保存程序的实现(implementation),称为定义(definition)文件。
C++/C程序的头文件以“.h”或”.hpp”为后缀,C程序的定义文件以“.c”为后缀,C++程序的定义文件通常以“.cpp”为后缀(也有一些系统以“.cc”或“.cxx”为后缀)。
2.1.1版权和版本的声明
版权和版本的声明位于头文件和定义文件的开头(参见示例2-1),主要内容有:
(1)版权信息。
(2)文件名称,标识符,摘要。
(3)当前版本号,作者/修改者,完成日期。
(4)版本历史信息。
//文件名称:
CommServer.hinterfaceoftheCommServerclass
〃摘要:
简要描述本文件的内容
//
//Copyright(c)2002-2003,深圳中心信息技术有限公司技术开发部
//Allrightsreserved.
//程序注释:
服务端TCP连接组件,监听客户端的连接,维护物理链路,//提供数据操作方法
//当前版本:
1.5
〃作者:
输入作者(或修改者)名字
//完成日期:
2003年5月20日
//取代版本:
1.0
//原作者:
输入原作者(或修改者)名字
2002年9月10日
示例2-1版权和版本的声明
2.1.2头文件的结构
头文件由三部分内容组成:
(1)头文件开头处的版权和版本声明(参见示例2-1)。
(2)预处理块。
(3)函数和类结构声明等。
假设头文件名称为CommServer.h,头文件的结构参见示例2-2。
为了防止头文件被重复引用,应当用ifndef/define/endif结构产生预处理块。
用#inelude<
stdlib.h>
格式来引用标准库的头文件(编译器将从标准库目录开始搜索)。
用#includeCommServer.h"
格式来引用非标准库的头文件(编译器将从用户的工作目录开始搜索)。
头文件中只存放“声明”而不存放“定义”
在C++语法中,类的成员函数可以在声明的同时被定义,并且自动成为内联函数。
这虽然会带来书写上的方便,但却造成了风格不一致,弊大于利。
建议将成员函数的定义与声明分开,不论该函数体有多么小。
不提倡使用全局变量,尽量不要在头文件中出现象externintnConectNum这类声明。
示例2-2C++/C头文件的结构
2.1.3定义文件的结构
定义文件有三部分内容:
(1)
定义文件开头处的版权和版本声明(参见示例
2-1)
(2)
对一些头文件的引用。
(3)
程序的实现体(包括数据和代码)。
假设定义文件的名称为CommServer.cpp,定义文件的结构参见示例2-3。
//版权和版本声明见示例2-1,此处省略。
#include"
stdafx.h"
//引用头文件
#includeCommServer.h”
TradeCenter.h"
TradeCenterDoc.h"
#include"
TradeCenterView.h"
MainFrm.h"
//全局函数的实现体
voidFunction1(…)
{
}
//类成员函数的实现体
voidCommServer:
:
HandleDataBody(…)
示例2-3C++/C定义文件的结构
2.1.4目录结构
如果一个软件的头文件数目比较多(如超过十个),通常应将头文件和定义文件分别
保存于不同的目录,以便于维护。
例如可将头文件保存于include目录,将定义文件保存于source目录(可以是多级目录)。
如果某些头文件是私有的,它不会被用户的程序直接引用,则没有必要公开其“声明”。
为了加强信息隐藏,这些私有的头文件可以和定义文件存放于同一个目录。
2.2结构化程序设计
2.2.1功能模块抽取
模块划分是结构化程序设计最重要的手段,应遵循以下原则:
在模块中必须保证可预知的运行顺序。
可重用代码尽量抽取出来形成函数。
函数设计时尽量追求使用简明的逻辑,可以牺牲少许计算复杂度以使逻辑简单。
尽量多的使用公用模块。
公用模块由单独的人员负责编制,避免多人编制。
每个函数,都有函数头说明,详见函数说明模板。
不同的功能模块尽量放在不同的文件中,便于管理。
禁用语句:
用if语句来强调只执行两组语句中的一组。
禁止elsegoto和elsereturn
嵌套限制:
禁止超过三重的嵌套语句
2.2.2功能模块编码原则
当编写过程、函数时,必须遵循以下原则:
1.基本要求
程序结构清析,简单易懂,单个函数的程序行数不得超过200行。
打算干什么,要简单,直接了当,代码精简,避免垃圾程序。
尽量使用标准库函数和公共函数。
使用括号以避免二义性。
2.可读性要求
可读性第一,效率第二。
保持注释与代码完全一致。
每个源程序文件,都有文件头说明,说明规格见规范。
每个函数,都有函数头说明,说明规格见规范。
主要变量(结构、联合、类或对象)定义或引用时,注释能反映其含义。
常量定义有相应说明。
处理过程的每个阶段都有相关注释说明。
在典型算法前都有注释。
利用缩进来显示程序的逻辑结构,缩进量一致并以Tab键为单位,定义Tab为4个字节。
循环、分支层次不要超过三层。
注释可以与语句在同一行,也可以在上行。
空行和空白字符也是一种特殊注释。
一目了然的语句不加注释。
注释的作用范围可以为:
定义、引用、条件分支以及一段代码。
避免不必要的分支。
3.结构化要求
禁止出现两条等价的支路。
尽是少用goto语句。
禁止else
goto和elsereturn
用case实现多路分支。
避免从循环引出多个出口。
函数只有一个出口。
不使用条件赋值语句。
不要轻易用条件分支去替换逻辑表达式
4.正确性与容错性要求
程序首先是正确,其次是优美
无法证明你的程序没有错误,因此在编写完一段程序后,
应先回头检查。
改一个错误时可能产生新的错误,因此在修改前首先考虑对其它程序的影响。
所有变量在调用前必须被初始化。
对所有的用户输入,必须进行合法性检查。
每个函数开始,必须有对输入参数的检查过程。
不要比较浮点数的相等,如:
10.0*0.1==1.0,不可
靠
程序与环境或状态发生关系时,必须主动去处理发生的意外事件,如文件能否逻辑锁定、打印机是否联机等。
单元测试也是编程的一部份,提交联调测试的程序必须通过单元测试。
函数应有尽量少的出口调用return语句显式返回。
(对于
main()用exit())。
尽量减少多点返回。
函数要尽量避免布尔型参数。
5.可重用性要求
重复使用的完成相对独立功能的算法或代码应抽象为公共控件或类。
公共控件或类应考虑00思想,减少外界联系,考虑独立性或封装性。
公共控件或类应建立使用模板。
2.2.3编程标准
遵循C++标准语法最重要的目标是程序的可读性和可维护性。
一个程序有唯一的出口和入口。
不要存在有多个退出程序的出口尽量简化main(),不要超过60行.
2.2.4源代码层次
按照以下要求组织源代码:
程序注释
模块注释
引用系统头文件
引用项目头文件
引用本程序头文件
常量宏
参数宏
函数定义和实现
如果仅仅是本模块调用的函数,则应该定义为私有的成员函数。
只有那些由本程序内部多个模块之间调用的函数定义为公有的成员函数,类的成员变量尽量使用私有的成员变量。
函数声明的顺序如下:
构造函数
参数宏固有类型声明(指针、数组等,typedeflong
LongArr[MacMaxNumber])
复杂类型定义(结构、联合等typedefstuctdaterecDate函数声明:
所有要使用的函数都要先声明后使用。
如果一个函数未在头文件中声明,则必须在本程序中完成。
如果仅仅是本模块调用的函数,则应该只在本模块源代码内部定义。
只有那些由本程序内部多个模块调用的函数放在全程变量区声名。
函数声明的顺序如下:
main()(如果存在).
高层函数定义,如初始化函数、主处理函数、结束函数底层函数定义,要符合一个从低到高的逻辑。
2.3命名约定
2.3.1综述
没有一种命名规则可以让所有的程序员赞同,本文档论述的共性规则是被大多数
程序员采纳的,我们应当在遵循这些共性规则的前提下,再扩充特定的规则
使用C++创建任何标识时遵循下列规则:
标识符应当直观且可以拼读,可望文知意,不必进行“解码”。
标识符最好采用英文单词或其组合,便于记忆和阅读。
切忌使用汉语拼音来命名。
程序中的英文单词一般不会太复杂,用词应当准确。
例如不要把
CurrentValue写成NowValue。
使用描述性的、有意义的标识。
以种类开始,然后是种类属性。
例如,使
用strUserName而不是strNameUse。
避免使用一般化的单词,例如Value,Number。
命名规则尽量与所采用的操作系统或开发工具的风格保持一致
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 代码 规范