研发JAVA和IM C++编码编程规范.docx

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
IM C++编码规范 元信息 作者&维护者:董剑飞( 发邮件给我) 目前状态:已发布 本规范是以百度C++编码规范为基础,原作者为ibase的陈晓鸣同学,经IM组RD共同讨论一致确定,作为IM组同学编写代码和审查代码的依据。 规则集[RULES] 【语法】 [RULE]struct表示数据的简单集合,公开定义数据成员,一般不定义方法。 [RULE]class表示被封装的用户自定义类型,不公开定义非静态数据成员,一般通过成员方法进行交互。 [RULE]若类定义了虚函数,必须定义虚析构函数 [RULE]如果类(不包括结构)含有指针成员,必须显式给出析构函数,并小心指定其行为(是否销毁指针,如何销毁等) [RULE]绝不允许让异常离开析构函数。 [RULE]公开继承的类,必须表示“是一个”的关系,禁止仅仅因为可以复用某些方法而使用继承 [RULE]派生类不允许覆盖基类中的非虚函数 [RULE]若函数调用了返回错误码的函数,必须检查其返回值。 [RULE]错误码原则上以0表示成功,其它非0值表示错误。 [RULE]禁止错误码与返回值混用。 [RULE]若要取得变量的大小,必须使用sizeof()关键字,不能自己估算,也不能使用预定义宏和常量 [RULE]禁止使用goto向上跳转 [RULE]如果必须编写宏函数,并且宏函数有多行的话,必须使用do{ ... }while(0)块包围。 [RULE]如果必须编写宏函数,宏参数必须使用小括号包围。 [RULE]禁止全局变量、静态变量之间存在依赖关系。 [RULE]使用enum或const定义常量,不使用define定义常量。 [RULE]可能用于跨模块间通讯或者涉及存储的枚举值必须显式指定值,避免版本不一致造成诡异的错误。 [RULE]禁止使用魔术数字,必须替换为符号常量 【风格】 [RULE]必须按以下顺序引用头文件:C(标准)库,C++(标准)库,其它库,自己的项目。 [RULE]头文件必须使用include guards保护。 [RULE]一条单独的语句必须独立成行 [RULE]使用空格缩进,不使用制表符 [RULE]以4个空格为单位缩进 [RULE]if语句的分支部分必须使用大括号包围。 [RULE]switch语句的每一个case语句都必须以break语句或return语句结束。 [RULE]switch如果使用分组,每组除最后一个case之外不允许有任何代码。 [RULE]循环语句的循环体必须使用大括号包围。 [RULE]头文件必须使用.h后缀,C++源代码必须使用.cpp后缀,纯C源代码必须使用.c后缀 [RULE]使用下划线分隔的全小写命名法命名命名空间 [RULE] 函数命名使用下划线分隔的全小写命名法 [RULE]用户自定义类型、结构体与枚举类型使用下划线分隔的全小写命名法命名,并加上"_t"后缀 [RULE]尽可能不使用全局变量,如果必须使用,必须以g为前缀,而且必须足够长以避免名字冲突 [RULE]全局变量使用下划线分格的全小写命名法命名 [RULE]局部变量名使用下划线分隔的全小写命名法命名 [RULE]const常量与枚举常量都使用下划线分隔的全大写命名法命名 [RULE]尽可能不定义宏,如果必须,使用下划线分隔的全大写命名法,并且必须足够长,以库名为前缀,使人们不至误用,并尽可能减少冲突(如MY_LIB_MY_MACRO_THAT_SCARES_SMALL_CHILDREN) [RULE]注释建议使用中文书写,并一律使用GBK编码。如果使用英文,请确保简明易懂,且没有语法及拼写错误。 [RULE]多行注释必须写在被解释内容的上方。单行注释可以写在被注释语句的上文或右方 [RULE]一行内只应声明一个变量 【库的使用】 [RULE]禁止使用auto_ptr智能指针。 [RULE]禁止使用strcpy()/strcat()/strdup()/sprintf()等没有越界检查的函数。 [RULE]禁止使用strncpy等实现有问题的函数。 第一部分 语法 本节主要规定和建议IM工程师使用/不使用某些C++语法,从而提高代码质量、可读性、可维护性。 总体原则 规定 工程师应该尽可能提高对C++语法的全面理解 在非必要的情况下尽可能避免使用罕用的、“高级”的C++语法 解释 写C++程序的第一条原则,不要写C++程序。第二条原则,不要写C++程序,除非你对C++语法与使用方法有足够的了解 C++是一门语法复杂,功能强大的语言。熟练使用C++的能力并非一朝一夕的努力即可获得。因此,应当不断地学习、提高驾驭这门语言的能力。 在编写C++程序时应遵守KISS

文档评论(0)

文人教参 + 关注
实名认证
内容提供者

老师教学,学生学习备考课程、成人语言培训课程及教材等为提升学生终身学习竞争力,塑造学生综合能力素质,赋能学生而努力

版权声明书
用户编号:6103150140000005

1亿VIP精品文档

相关文档