c++编程规范

1.检查函数输入的有效性。

2.如果参数是指针,且仅作输入用,则应在类型前加const,以防止该指针在函数体内被意外修改。

3.用malloc或new申请后应该立即检查指针是否为NULL。

4.指针的申请和释放必须配对。指针释放后应该立即设置为NULL,避免野指针。

5.宏定义要用括号。

6.指针判别是否为空直接和NULL比较,而不是用!。

7.代码错误后可用断言宣布错误,并终止。

8.以同样的顺序定义和初始化变量。

9.使用固定大小的存储空间时,对存入的元素数量进行范围检查。

10.正式软件产品中应把断言及其他调测代码去掉。

11.全局变量使用static定义,访问全局变量使用get()和set(),尽量避免使用extern。

12.较长的语句要分成多行,换行以低优先级运算符开头并缩进。

13.避免使用不易理解的数字,用有意义的标识来替代。涉及物理状态或者含有物理意义的常量,不应直接使用数字,必须用有意义的枚举或宏来代替。

15.避免循环体内含判断语句,应将循环语句置于判断语句的代码块之中。

16.严禁使用未经初始化的变量作为右值。

17.路径使用反斜线“/”,而不是斜线“\”,“/”能被不同的平台识别。

18.所有头文件都要包含

#ifndef FOO_BAR_BAZ_H_

#define FOO_BAR_BAZ_H_

...

#endif // FOO_BAR_BAZ_H_

防止被多重包含。

  1. 整数用 0 , 实数用0.0,指针用NULL,字符 (串)用 '\0',结构体用memset。
  2. 文件名要全部小写, 可以包含下划线 (_)或连字符 ( - )
  3. 类型名称的每个单词首字母均大写, 不包含下划线。
  4. 变量 (包括函数参数)和数据成员名一律小写,单词之间用下划线连接。
  5. 声明为 constexpr 或const的变量, 或在程序运行期间其值始终保持不变的,命名时以 “k”开头,大小写混合。
  6. 函数全部使用大驼峰命名风格: MyExcitingFunction(), MyExcitingMethod()
  7. 枚举的命名应当和 常量 或 宏 一致: kEnumName 或是ENUM_NAME .
  8. 宏命名:MY_MACRO_THAT_SCARES_SMALL_CHILDREN。
  9. 只使用空格, 每次缩进 2个空格。
  10. 关键字 if 和else另起一行。
  11. 垂直留白越少越好. 两个函数定义之间的空行不要超过 2,函数体首尾不要留空行,函数体中也不要随意添加空行。
  12. 将相似的声明放在一起, 将 public 部分放在最前。
  13. 函数的参数顺序为: 输入参数在先,后跟输出参数。
  14. 所有按引用传递的参数必须加上 const。
  15. 尽可能用 sizeof(varname) 代替sizeof(type)
  16. 每个类的定义都要附带一份注释, 描述类的功能和用法,除非它的功能相当明显.

 

 


版权声明:本文为weixin_44440522原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。