最近工作稍微轻松一点,就再学习了一下编码规范。遂记些笔记,以便查阅。

这次学习的是Google 开源项目风格指南中文版,地址是:http://zh-google-styleguide.readthedocs.org/en/latest/google-cpp-styleguide/,英文版的地址是:http://google.github.io/styleguide/cppguide.html

本文的目的是方便快速查阅,所以我只简单的记录该怎么做,而没有写为什么要这样做。想要看详细分析,可查阅原版资料。本文只是摘要了一些会在最近工作中需要用到的条目,并未完整的提取原版中内容。

1. 头文件

1.1. self-contained头文件

头文件本身依赖的其它头文件,需要全部包含。

1.2. #define保护

#ifndef FOO_BAR_BAZ_H_
#define FOO_BAR_BAZ_H_

#endif // FOO_BAR_BAZ_H_

a. 为了保证唯一性,#define的格式是 工程名+源代码树的全路经。

b. #endif后面要加注释

1.3. 内联函数

10行以内的简单代码才使用内联函数。不要内部有函数调用,不要有switch。

1.4. 函数参数顺序

输入参数在前,输出参数在后。有输入输出两用参数时,可不严格遵循此规则。

1.5. #include的路径及顺序

a. 为避免隐藏依赖,头文件包含的顺序是:

   相关头文件(本文件对应的头文件),

  C库,

  C++库,

  其它库,

  项目内.h

b. 包含头文件时,使用源码的目录树结构,避免使用  .  和  .. 。

如 #include “base/logging.h”

c. 条件编译的头文件,可以放在其它头文件之后

c/c++编码规范(1)--头文件的更多相关文章

  1. [C/C++]编程规范一:头文件篇

    一般来说,每一个.cc或者.cpp文件对应一个头文件(.h文件),当然,也有例外,例如一些测试单元或者main文件,头文件的一些规范可以令代码可读性.程序的性能等大为改观,所以还是要注意头文件的规范问 ...

  2. iOS编码规范(简版)

    1. 总体指导原则 [规则1-1]首先是为人编写程序,其次才是计算机. 说明:这是软件开发的基本要点,软件的生命周期贯穿产品的开发.测试.生产.用户使用.版本升级和后期维护等长期过程,只有易读.易维护 ...

  3. PHP编码规范及建议

    <h3 align="center">PHP编码规范及建议</h3>### 编码规范- PHP代码文件必须以 <?php 标签开始.```<?p ...

  4. stm32 io操作 头文件规范

    在stm32众多项目开发中,有太多的对io进行操作,若置1或清0,使用官方库提供的函数,固然方便,规范,但是需要包含标准的库,尺寸较大,还得处理不同版本兼容问题,包括io初始化也太繁琐,于是操作原子等 ...

  5. C++编程规范之23:头文件应该自给自足

    摘要: 各司其责:应该确保所编写的每个头文件都能够独自进行编译,为此需要包含其内容所依赖的所有头文件. 如果一个文件包含某个头文件时,还要包含另一个头文件才能工作,就会增加交流障碍,给头文件的用户增添 ...

  6. Objective-C开发编码规范【转载】

    概要 Objective-C是一门面向对象的动态编程语言,主要用于编写iOS和Mac应用程序.关于Objective-C的编码规范,苹果和谷歌都已经有很好的总结: Apple Coding Guide ...

  7. C#编码规范 转 http://www.cnblogs.com/wulinfeng/archive/2012/08/31/2664720.html

    C#编码规范   1  规范目的 ……………………………………………………… 3 2  适用范围 ……………………………………………………… 3 3  代码注释 ………………………………………………… ...

  8. IOS中的编码规范

    1.指导原则 [原则1-]首先是为人编写程序,其次才是计算机. 说明:这是软件开发的基本要点,软件的生命周期贯穿产品的开发.测试.生产.用户使用.版本升级和后期维护等长期过程,只有易读.易维护的软件代 ...

  9. c#编码规范

    1  规范目的 --------------------- 3 2  适用范围 --------------------- 3 3  代码注释 --------------------- 3 3.1  ...

随机推荐

  1. 一个 TCP 连接可以发多少个 HTTP 请求?

    曾经有这么一道经典面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么?相信大多数准备过的同学都能回答出来,但是如果继续问:收到的 HTML 如果包含几十个图片标签,这些图片是以什么方式. ...

  2. adreno的tbdr

    看完apple的(&&powervr) 再来撸高通的.. FlexRender 能自己选三种模式 Direct Binning 这个只是分块 HWVizBinning 这个估计就是tb ...

  3. BZOJ 4012 [HNOI2015]开店 (区间修改 永久化标记 主席树)

    讲得好啊 主席树区间修改了,每一次遇到整区间就打永久化标记(不下传,访问的时候沿路径上的标记算答案)然后returnreturnreturn,那么每修改一次只会访问到lognlognlogn个节点,再 ...

  4. i3wm脚本

    exec 执行命令 --no-startup-id 有些脚本或者程序不支持启动通知,不加命令,鼠标会长时间空转,60秒左右 exec_always 每次重启i3,使用该命令启动的程序都会重新执行一次, ...

  5. selenium+pyquery爬取淘宝商品信息

    import re from selenium import webdriver from selenium.common.exceptions import TimeoutException fro ...

  6. mybatis sql语句中转义字符

    问题: 在mapper  ***.xml中的sql语句中,不能直接用大于号.小于号要用转义字符 解决方法:   1.转义字符串 小于号    <    < 大于号    >    & ...

  7. MFC 画字体DrawText()或TextOut(),CFont字体样式类

    新建单个文档的MFC应用程序,类视图——View项的属性——消息,WM_PAINT,创建OnPaint()函数 void CMFCApplication27View::OnPaint() { CPai ...

  8. OFDM留空中央直流子载波目的及原理

    目的: 降低峰均比! 原理: IDFT公式: 直流分量k接近0,公式近似于对X(k)进行累加,因此直流分量会产生较大的信号能量,造成严重的峰均比. 详细内容可参考: https://dwz.cn/Zl ...

  9. const 与指针 的用法

    请找出下面程序中有哪些错误: 1 2 3 4 5 6 7 8 9 10 11 12 13 int main() {    int i=10;    int j=1;    const int *p1; ...

  10. Codevs 1404 字符串匹配(Kmp)

    1404 字符串匹配 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你两个串A,B,可以得到从A的任意位开始的子串和B匹配的 ...