VC++编程规范.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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行 必须检查输入值

文档评论(0)

kakaxi + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档