c/c++编码规范(1)--头文件

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

这次学习的是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. 条件编译的头文件,可以放在其它头文件之后

时间: 2024-07-28 15:49:57

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

iOS编码规范(简版)

1. 总体指导原则 [规则1-1]首先是为人编写程序,其次才是计算机. 说明:这是软件开发的基本要点,软件的生命周期贯穿产品的开发.测试.生产.用户使用.版本升级和后期维护等长期过程,只有易读.易维护的软件代码才具有生命力,所以提倡写代码之前多思考,特别是逻辑复杂或者技术难点较高的地方,个人思考不清楚的,可以和团队成员进行沟通. [规则1-2]保持代码的简明清晰,避免过分的编程技巧. 说明:简单是最美.保持代码的简单化是软件工程化的基本要求.不要过分追求技巧,否则会降低程序的可读性. [规则1-

stm32 io操作 头文件规范

在stm32众多项目开发中,有太多的对io进行操作,若置1或清0,使用官方库提供的函数,固然方便,规范,但是需要包含标准的库,尺寸较大,还得处理不同版本兼容问题,包括io初始化也太繁琐,于是操作原子等例程进行精简, 初始化如下,变得如此简单:适用于stm32f和stm32L void Init_Io(void){ JTAG_Set(SWD_ENABLE); //开启SWD RCC->APB2ENR|=1<<6;//先使能外设PORTE时钟 RCC->APB2ENR|=1<&l

C/C++编程规范——头文件

在选择编程规范时,我首选google,其次是华为与微软,最后根据自身的一些实际情况进行调整.以下内容摘自google的c/c++编程规范.--------------------------通常,每一个.cc 文件(C++的源文件)都有一个对应的.h 文件(头文件),也有一些例外,如单元测试代码和只包含 main()的.cc 文件.正确使用头文件可令代码在可读性.文件大小和性能上大为改观.下面的规则将引导你规避使用头文件时的各种麻烦. 1. #define 的保护所有头文件都应该使用#defin

Python PEP8 编码规范中文版-译自官网文件

写在前面(自补):初听PEP8一头雾水,不知所谓.啥是PEP8?为啥叫PEP8?PEP8是干啥的?-先了解下PEP吧. PEP是什么? PEP的全称是Python Enhancement Proposals,其中Enhancement是增强改进的意思,Proposals则可译为提案或建议书,所以合起来,比较常见的翻译是Python增强提案或Python改进建议书. 我个人倾向于前一个翻译,因为它更贴切.Python核心开发者主要通过邮件列表讨论问题.提议.计划等,PEP通常是汇总了多方信息,经过

iOS:Cocoa编码规范 -[译]Coding Guidelines for Cocoa

--原文地址:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/FrameworkImpl.html Cocoa编码规范 --前言 用公共API开发一个Cocoa框架,插件,或其他可执行目标,里面的命名编写和规范不同于一般应用程序的开发.因为你开发出来东西是给开发者用的看的,并且他们不熟悉你的编程接口.这个时候API的命名约定就派上用场了,因为它使你的写

C#编码规范-转

转自:原文 http://www.cnblogs.com/wulinfeng/archive/2012/08/31/2664720.html 1 规范目的 ……………………………………………………… 3 2 适用范围 ……………………………………………………… 3 3 代码注释 ……………………………………………………… 3 3.1 代码注释约定............................................ 3 3.2 模块头部注释规范.................

[转载]Objective-C开发编码规范:4大方面解决开发中的规范性问题

Objective-C 编码规范,内容来自苹果.谷歌的文档翻译,自己的编码经验和对其它资料的总结. 概要 Objective-C 是一门面向对象的动态编程语言,主要用于编写 iOS 和 Mac 应用程序.关于 Objective-C 的编码规范,苹果和谷歌都已经有很好的总结: Apple Coding Guidelines for Cocoa Google Objective-C Style Guide 本文主要整合了对上述文档的翻译.作者自己的编程经验和其他的相关资料,为公司总结出一份通用的编

HTML/CSS/JS编码规范

最近整理了一份HTML/CSS/JS编码规范,供大家参考.目录:一.HTML编码规范二.CSS编码规范三.JS编码规范 一.HTML编码规范 1. img标签要写alt属性 根据W3C标准,img标签要写alt属性,如果没有就写一个空的.但是一般要写一个有内容的,根据图片想要表达的意思,因为alt是在图片无法加载时显示的文字.如下不太好的写法: <img src="company-logo.svg" alt="ABC Company Logo"> 更好的

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

前言 今天快速翻看了谷歌C++编码规范http://zh-google-styleguide.readthedocs.org/en/latest/google-cpp-styleguide/contents/,学到了一些东西. 对于这个规范,我不会100%接收,比如里面的变量命名规范就跟工作项目的代码冲突了,还有谷歌建议switch中的每个块要加上{}等等. 我在看文档的过程中,把学到的新东西记录下来,有些以前就习以为常的编码习惯,我就不再记录,比如析构函数要用virtual关键字,用sizeo