码迷,mamicode.com
首页 > 编程语言 > 详细

谷歌C++编码规范读书笔记

时间:2014-11-08 00:58:15      阅读:932      评论:0      收藏:0      [点我收藏+]

标签:style   http   ar   os   使用   sp   文件   数据   on   

前言

今天快速翻看了谷歌C++编码规范http://zh-google-styleguide.readthedocs.org/en/latest/google-cpp-styleguide/contents/,学到了一些东西。

对于这个规范,我不会100%接收,比如里面的变量命名规范就跟工作项目的代码冲突了,还有谷歌建议switch中的每个块要加上{}等等。
我在看文档的过程中,把学到的新东西记录下来,有些以前就习以为常的编码习惯,我就不再记录,比如析构函数要用virtual关键字,用sizeof(varname)代替sizeof(type)等。这里的摘抄,都是我认为具有通用性的建议。

正文

  • 所有头文件都应该使用 #define 防止头文件被多重包含, 命名格式当是: PROJECT_PATH_FILE_H_
  • 能用前置声明的地方尽量不使用 #include.
  • 复杂的内联函数的定义, 应放在后缀名为 -inl.h 的头文件中.
  • 使用标准的头文件包含顺序可增强可读性, 避免隐藏依赖: C 库, C++ 库, 其他库的 .h, 本项目内的 .h.
  • 不要在 .h 文件中使用匿名名字空间.
  • 不要将嵌套类定义成公有, 除非它们是接口的一部分, 比如, 嵌套类含有某些方法的一组选项.
  • 禁止使用 class 类型的静态或全局变量: 它们会导致很难发现的 bug 和不确定的构造和析构函数调用顺序.
  • 构造函数中只进行那些没什么意义的初始化, 可能的话, 使用 Init() 方法集中初始化有意义的 (non-trivial) 数据.
  • 类的每个区段内的声明通常按以下顺序:
    1. typedefs 和枚举
    2. 常量
    3. 构造函数
    4. 析构函数
    5. 成员函数, 含静态成员函数
    6. 数据成员, 含静态数据成员
  • 我们不允许使用缺省函数参数.
  • 我们禁止使用 RTTI.
  • 对于迭代器和其他模板对象使用前缀形式 (++i) 的自增, 自减运算符.
  • 整数用 0, 实数用 0.0, 指针用 NULL, 字符 (串) 用 ‘\0‘.
  • 关于函数的命名,永远不要用省略字母的缩写,比如不能将count缩写成cnt。
  • 函数声明处注释描述函数功能; 定义处描述函数实现.
  • 向函数传入 NULL, 布尔值或整数时, 要注释说明含义, 或使用常量让代码望文知意.
  • 如果函数声明成 const, 关键字 const 应与最后一个参数位于同一行.
  • 如果有些参数没有用到, 在函数定义处将参数名注释起来:
  • return 表达式中不要用圆括号包围.
  • 预处理指令不要缩进, 从行首开始.

谷歌C++编码规范读书笔记

标签:style   http   ar   os   使用   sp   文件   数据   on   

原文地址:http://my.oschina.net/u/1453800/blog/342155

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!