- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VC编程规范
VC++ 编程规范
编写编程规范的目的
安全:增加代码的正确性和稳定性,使它稳定可靠
遵守编程规范可以大幅度减少各种易犯的错误和隐患。
易读:保证代码的易读性和可维护性
美观: 尽量统一项目组内人员的编程风格
便于代码调试和错误定位
在编码时就注意留下跟踪的线索会使错误定位和修改更加容易。
编程规范的作用范围
只要能写出高质量的程序,并不强求所有程序都必须完全遵循本编码规范。原则上:
外来的代码,只要测试正确,代码复查没有问题,程序文档齐全,可以有自己的规范和风格
过去的程序,原则上不为了适合本规范而专门改写程序。但是如果方便,也可以顺手做一些修改,如加一些注释。
这个规范主要针对本开发组新开发的,用VC++编写的界面或业务逻辑模块的编写。某些模块如果有自己的编程风格,请制订相应的文档加以说明。
命名规则
包括如下C++ 要素的命名:
类、结构、函数、变量、常量(包括资源、自定义消息)、宏、自定义类型等
命名的主要原则是:
使用有意义的单词或多个词组合,一目了然。不要使用人名、项目组名
命名时请考虑名字的唯一性,不要使用容易引起混淆的名称。
长短要合适。多个词组合较长时, 可以使用单词的缩写
主要采用Windows的命名风格
对于类、函数和变量,每个单词的首字符大写, 其余小写
常量和宏定义全部大写
自己定义的类型(使用了typedef)全部大写,指针使用LP大写前缀
不要用MyFile.cpp,test1.h,bitmap001.bmp, nByte, CClass等等没有意义的名字。临时使用的文件的名字要用函数生成,避免使用“硬名字”,如temp.123。不能使用程序员的姓名或缩写来命名,如yls.cpp。
类的命名
以大写的C开头,采用如下格式:
CXXXYYYYY
其中 XXX 指的是模块名称的缩写,参见附录2。 YYYYY是类本身的名称
例如: CAdmDlgSearchID
结构/自定义类型
结构/联合命名使用typedef后必须全部大写,单词中间可以使用下划线连接。
如果不使用typedef,则在全部大写的名字前加st。
结构变量的命名应尽量使用该结构的缩写前缀。前缀使用两个以上的小写字母。
自己定义的类型(使用了typedef)全部大写,指针使用LP大写前缀
函数
使用动宾词组表达函数实际所作的事
同名的函数(重载函数)在功能上应该完全相同, 在参数上的差别也应一目了然
不得出现名字非常相近但功能不同的函数. 如 CreatePage1(), CreatePage2()等
变量
变量命名原则上使用匈牙利命名法,一般由“前缀+类型修饰+主体”等部分组成,如: g_strRegHome
前缀(以下划线分割)
g_ :表示全局变量(包含全局静态变量) 如: g_lpEnv
t_ :表示线程的全局变量: 如: int __declspec(thread) t_nCount
m_ :表示类成员变量(包含类静态变量) 如: m_dwFlags
g_str :表示全局的字符串常量 如: const TCHAR g_strRegHome[] = _T(“Software\\Founder\\Founder Author Tool\\4.0”);
类型修饰(小写字母),参见附录1。
主体使用一个或多个单词表示变量代表的确切含义, 参见下面的大小写规则
窗口菜单句柄等命名: hWndxxxx, hMenuxxxx
常量(包括资源、自定义消息,枚举,宏等)
宏定义和常量全要用大写
自定义的消息 WM_A_
资源ID的命名:参见附录2:资源ID的命名。
枚举类型:命名方式类似结构,相应的前缀为enum。枚举值的命名一律大写(等同于宏)。枚举变量的命名按整数命名。
内部的限制量,如列表的最大长度,文件名的最大长度等,统一使用MAX_xxxx_xxxx_LEN来命名,并集中放置在一个头文件中。数据库相关的限制值放在另一个头文件中定义。
编程规则
类
对自己定义的复杂类一定提供构造和析构函数,
析构函数前一律加virtual,防止因继承而产生的memory leak。(有两种特殊情况:1.部支持位拷贝。2.某些特殊情况析构函数必须不是虚函数???)
在构造函数中初始化所有的成员变量,在析构函数中删除可能申请的内存空间。
推荐采用公开的Get/Set函数对成员变量进行存储,而把成员变量设成protected或者private,并加上注释。
声明成员函数和变量时要按功能分组,给外部用的要排在前面
类的继承深度不要超过4层
类的功能要单一,公共函数个数一般要小于20个(专门用于保存数据的类除外)内部protected函数以及private函数个数一般应小于20个
函数
长度一般禁止超过200行
必须检查输入值
您可能关注的文档
- TD-SCDMA大功率干放在分布系统中的应用.docx
- SYB答案.doc
- TDA2030应音响功放 应用.doc
- SY4204-2007油气集输.doc
- TEC-2实验计算机微程序控制器实验.doc
- Tears是一首略有淡淡的忧伤钢琴曲.doc
- SZDL纬地道路设计步骤.doc
- TES824介绍.doc
- TELEDYNE3190中文操作手册.doc
- TFT液晶显示屏控制器的设计.doc
- ASX_Series_操作说明书手册.pdf
- Battery-Backup-Kit-Installation-操作说明书手册.pdf
- DCB-05-V2-操作说明书手册.pdf
- DEIMOS-Installation-操作说明书手册.pdf
- Axess-Pro-Series-2120-Roller-Shutter-Pendant-操作说明书手册.pdf
- Controll-A-Door-P-Diamond-操作说明书手册.pdf
- Controll-A-Door-PD-Power-Drive-操作说明书手册.pdf
- Controll-A-Door-Secure-SDO-6-操作说明书手册.pdf
- AMX_Series_操作说明书手册.pdf
- ELI-250-Installation-操作说明书手册.pdf
最近下载
- 中华人民共和国机械行业标准燃煤热风炉技术条件.PDF
- 武汉市光谷为明实验学校新初一分班语文试卷含答案.pdf VIP
- 浙江大学紫金港校区校园平面图.PDF VIP
- 中级车号员(长)试题及答案.pdf VIP
- 铁路车号员(长):中级车号员(长)测试题.docx VIP
- 铁路车号员(长)中级车号员(长)试卷(铁路车号员(长)).doc VIP
- 铁路车号员(长)车号员一体化考试试卷(铁路车号员(长)).doc VIP
- 铁路车号员(长)铁路车号员(长)综合练习试卷(铁路车号员(长)).doc VIP
- 铁路车号员(长)铁路车号员(长)综合练习试卷.doc VIP
- 初中数学高质量作业设计策略与实践.pptx
文档评论(0)