1 / 69
文档名称:

GoogleC编程规范.doc

格式:doc   大小:1,782KB   页数:69页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

GoogleC编程规范.doc

上传人:雨林书屋 2022/5/28 文件大小:1.74 MB

下载得到文件列表

GoogleC编程规范.doc

文档介绍

文档介绍:谷歌-C++编程规范
谷歌-C++编程规范
1/69
谷歌-C++编程规范

背景
谷歌的开源项目大多使用C++开发。每一个C++程序员也都知道,C++拥有好多兴盛的语
的做法会降低代码可读性及履行效率。假如但是为了
少包括头文件,仍是不要这样取代的好。
自然,.cc文件不论怎样都需要所使用类的定义部分,自然也就会包括若干头文件。
译者注:能依靠声明的就不要依靠定义。
内联函数
只有当函数只有10行甚至更少时才会将其定义为内联函数(inlinefunction)。
定义(Definition):当函数被声明为内联函数今后,编译器可能会将其内联张开,无需按
平时的函数调用体系调用内联函数。
优点:当函数体比较小的时候,内联该函数能够令目标代码更为高效。对于存取函数
(accessor、mutator)以及其他一些比较短的要点履行函数。
缺点:滥用内联将致使程序变慢,内联有可能是目标代码量或增或减,这取决于被内联的函
数的大小。内联较短小的存取函数平时会减少代码量,但内联一个很大的函数(译者注:如
果编译器赞成的话)将戏剧性的增加代码量。在现代办理器上,由于更好的利用指令缓存
instructioncache),小巧的代码经常履行更快。
结论:一个比较合适的办理规则是,不要内联超出10行的函数。对于析构函数应慎重对待,
析构函数经常比其表面看起来要长,由于有一些隐式成员和基类析构函数(假如有的话)被
谷歌-C++编程规范
谷歌-C++编程规范
5/69
谷歌-C++编程规范
33
谷歌-C++编程规范
谷歌-C++编程规范
69/69
谷歌-C++编程规范

调用!
另一合用的办理规则:内联那些包括循环或switch语句的函数是得不偿失的,除非在大多
数情况下,这些循环或switch语句从不履行。
重要的是,虚函数和递归函数即便被声明为内联的也不用然就是内联函数。平时,递归函数
不应当被声明为内联的(译者注:递归调用货仓的张开其实不像循环那么简单,比方递归层数
在编译时可能是未知的,大部分编译器都不支持内联递归函数)。析构函数内联的主要原因
是其定义在类的定义中,为了方便抑或是对其行为给出文档。
文件
复杂的内联函数的定义,应放在后缀名为的头文件中。
在头文件中给出内联函数的定义,可令编译器将其在调用途内联张开。但是,实现代码应完
,,除非这样做在可读性和效率上
有显然优势。
假如内联函数的定义比较短小、逻辑比较简单,。比方,存
取函数的实现理所自然都放在类定义中。出于实现和调用的方便,较复杂的内联函数也能够
,假如你感觉这样会使头文件显得粗笨,还能够够将其分别到独自的中。这样
即把实现和类定义分别开来,当需要时包括实现所在的即可。
文件还可用于函数模板的定义,进而使得模板定义可读性增强。
要提示的一点是,和其他头文件同样,也需要#define保护。
(FunctionParameterOrdering)
定义函数时,参数序次为:输入参数在前,输出参数在后。
C/C++函数参数分为输入参数和输出参数两种,有时输入参数也会输出(译者注:值被改正
谷歌-C++编程规范
谷歌-C++编程规范
7/69
谷歌-C++编程规范
44
谷歌-C++编程规范
谷歌-C++编程规范
69/69
谷歌-C++编程规范

时)。输入参数一般传值或常数引用(constreferences),输出参数或输入/输出参数为非
常数指针(non-constpointers)。对参数排序时,将所有输入参数置于输出参数从前。不
要但是由于是新增加的参数,就将其置于最后,而应当仍旧置于输出参数从前。
这一点其实不是必然依据的规则,输入/输出两用参数(平时是类/结构体变量)混在其中,会
使得规则难以依据。