- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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函数名
函数名一般由能代表函数意义的词组组成,其中每
您可能关注的文档
- STATCOM静止无功补偿器【DOC精选】.doc
- states of US美国的个州【DOC精选】.doc
- statistics-22 by keller【DOC精选】.doc
- STC的9C做的循迹小车L9N的电机驱动急求一个C语言的驱动程序做循迹小车的有三个黑白关电【DOC精选】.doc
- STEEL AND TIMBER DESIGN【DOC精选】.doc
- steel annealing processes as hybrid systems【DOC精选】.doc
- statistics- by keller【DOC精选】.doc
- Stems【DOC精选】.doc
- Step DB块导出到EXCEL【DOC精选】.doc
- STEP 标准在计算机辅助工程CAx 中的应用【DOC精选】.doc
- Technology Quarterly Update no 【DOC精选】.doc
- TCP_IP技术大全9【DOC精选】.doc
- TD-SCDMA物理信道和传输信道到物理信道的映射【DOC精选】.doc
- Tecplot速成帮手【DOC精选】.doc
- Teaching Plan for Reading The Band that Wasn【DOC精选】.doc
- TEM-【DOC精选】.doc
- Tecplot help【DOC精选】.doc
- TEM 【DOC精选】.doc
- ten ideas to shape our future打造未来的十个创意【DOC精选】.doc
- Terms and Idiom of Shipping,Trading,Chartering and Insurance(术语和惯用语)B【DOC精选】.doc
文档评论(0)