TEC--代码编写规范【DOC精选】.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
TEC--代码编写规范【DOC精选】

目 录 前言 1 一、基本内容 1 1.1 行的长度 1 1.2 大括号 1 1.3 字符串 2 1.4类型转换(Casting) 3 1.5 指针 vs. 参数引用 3 1.6 STL 和其他标准类 3 二、命名约定 3 2.1宏名 3 2.2函数名 4 2.3变量名 4 2.4控件 4 2.5类命名 5 2.6结构命名 6 2.7文件 7 三、代码规范 7 3.1注释 7 3.2 声明 9 3.3 变量(Variable) 13 3.4 常量(Constants) 14 3.5 Functions 和 Methods 15 3.6 代码 18 四、类组织规范 18 五、编程风格 18 6.1层次性 19 6.2错误处理 19 6.3参数 20 六、模块化 20 七、界面设计规范 20 八、其他 20 8.1一些较好的习惯 20 8.2一些不好的习惯 21 前言 本文档的目的: 提高开发效率。每个开发人员将会感觉到修改别人的代码就象在修改自己的代码。 增强可维护性。对开发者来说,具有好的结构与文档的代码更易于维护。 降低bug的比率。本文档的部分规则和向导描述的技术目是为了在开发周期中预防bug或尽早地发现bug。 一、基本内容 1.1 行的长度 为了便于阅读和编辑,源文件每一行的长度不得超过80个字符。 1.2 大括号 以下方法可以使阅读更加便利,也可以预防出现bug。 大括号必须重起一行,这样可以有效的划分代码段,防止代码缠绕在一起。 { statements } 大括号应该缩进,与相对应的代码段在同一垂直线上。 if ( psz != NULL ) { if ( psz2 != NULL ) { } } -- NOT -- if ( psz != NULL ) { if ( psz2 != NULL ) { } } 对每一种情况的描述都必须用大括号来标识,哪怕仅有一种简单的情况。因为如果不这样的话,不经意间就会引入bug,在code review时,匆匆一瞥很难发现这个bug 。例如: if ( ERROR_SUCCESS != sc ) { single-line statement } 大括号也可用作限定局部变量的范围或控制变量得生命周期。例如: { CMyClass mc; use the class instance here } 1.3 字符串 字符串可以是以下三种类型: CHAR, TCHAR, 或 WCHAR。为了避免错误,当列示的情况发生时需要遵循以下的规则 : 当数据类型是WCHAR 时,使用lstrxxxW (note the trailing W) 或wcsxxx functions。 如: lstrcpyW(?pwszDest,?pwszSrc ); wcscpy(?pwszDest,?pwszSrc ); 当数据类型是 CHAR 时,使用 lstrxxxA (note the trailing A) 或strxxx functions。例如: lstrcpyA(?ptszDest,?ptszSrc ); strcpy(?ptszDest,?ptszSrc ); 当数据类型是 TCHAR 时,使用 lstrxxx 或 tcsxxx functions. 例如: lstrcpy(?ptszDest,?ptszSrc ); tcscpy( ptszDest, ptszSrc ); 1.4类型转换(Casting) 尽量避免使用类型转换,因为编译器的类型检测不能检测到类型转换。 如果类型转换不能被避免, 则使用C++ 造型操作符:static_cast,、dynamic_cast、 reinterpret_cast 和 const_cast。 他们可以预防使用类型转换时部分产生的普遍问题。 1.5 指针 vs. 参数引用 使用参数引用可以减少,和排除返回的空指针, 虽然使用参数引用时会失去使用指针的灵活性,例如:重新在分配指针给不同的值.但是在很多案例里,使用参数引用时被鼓励的。 1.6 STL 和其他标准类 使用STL 好的测试类可以减少bug的产生,加快开发的速度,使用STL,如果编译器支持也可以使用ATL。 命名约定 命名规则主要采用匈牙利命名法,根据不同的对象做相应的调整。 2.1宏名 #define 定义的宏一律大写,宏名由一组能代表变量意义的词组成,当名称比较长时,中间以下划线 “_” 进行连接,如IMAGE_WIDTH。 2.2函数名 函数名一般由能代表函数意义的词组组成,其中每

文档评论(0)

taotao0b + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档