谷歌风格C++命名规则

简介: 谷歌风格C++命名规则

1. 文件命名

规则

文件名要全部小写, 可以包含下划线 () 或连字符 (-), 依照项目的约定. 如果没有约定, 那么 “” 更好.

举例

my_useful_class.cc
    my-useful-class.cc

注意

1> C++ 文件要以 .cc 结尾, 头文件以 .h 结尾. 专门插入文本的文件则以 .inc 结尾

2> 内联函数直接放在.h文件中

2. 类型命名

规则

【类, 结构体, 类型定义 (typedef), 枚举, 类型模板参数 均为类型】,以大写字母开始, 每个单词首字母均大写, 不包含下划线。

举例

// 类和结构体
class UrlTable { ...
class UrlTableTester { ...
struct UrlTableProperties { ...
// 类型定义
typedef hash_map<UrlTableProperties *, string> PropertiesMap;
// using 别名
using PropertiesMap = hash_map<UrlTableProperties *, string>;
// 枚举
enum UrlTableErrors { ...

3. 变量命名

规则

变量 (包括函数参数) 和数据成员名一律小写, 单词之间用下划线连接. 类的成员变量以下划线结尾, 但结构体内部的变量的就不用。

举例

1> 普通变量命名

string table_name;  // 好 - 用下划线.
string tablename;   // 好 - 全小写.
string tableName;  // 差 - 混合大小写

2> 类数据成员变量

class TableInfo {
  ...
 private:
  string table_name_;  // 好 - 后加下划线.
  string tablename_;   // 好.
  static Pool<TableInfo>* pool_;  // 好.
};

3> 结构体成员变量

struct UrlTableProperties {
  string name;
  int num_entries;
  static Pool<UrlTableProperties>* pool;
};

4> 全局变量

对全局变量没有特别要求, 少用就好, 但如果你要用, 可以用 g_ 或其它标志作为前缀, 以便更好的区分局部变量.

5> 常量命名

声明为 constexpr 或 const 的变量, 或在程序运行期间其值始终保持不变的, 命名时以 “k” 开头, 大小写混合

const int kDaysInAWeek = 7;

4. 函数命名

规则

函数名的每个单词首字母大写 (即 “驼峰变量名” 或 “帕斯卡变量名”),没有下划线

举例

AddTableEntry()
DeleteUrl()
OpenFileOrDie()

5. 枚举命名

规则

枚举的命名应当和 常量 或 宏 一致: kEnumName 或是 ENUM_NAME.

举例

enum UrlTableErrors {
    kOK = 0,
    kErrorOutOfMemory,
    kErrorMalformedInput,
};
enum AlternateUrlTableErrors {
    OK = 0,
    OUT_OF_MEMORY = 1,
    MALFORMED_INPUT = 2,
};

6. 宏命名

规则

命名像枚举命名一样全部大写, 单词间使用下划线

举例

#define ROUND(x) ...
#define PI_ROUNDED 3.0


相关文章
|
5月前
|
存储 安全 数据安全/隐私保护
穿越编程之海:探索谷歌Protocol Buffers库在C++中的应用
穿越编程之海:探索谷歌Protocol Buffers库在C++中的应用
302 0
|
编译器 Go Android开发
中国上榜开发者薪酬最低国家;Go 语言产品负责人离职;谷歌 Carbon 旨在代替 C++ | 思否周刊
中国上榜开发者薪酬最低国家;Go 语言产品负责人离职;谷歌 Carbon 旨在代替 C++ | 思否周刊
237 0
|
Web App开发 Rust 安全
谷歌改善 Chrome 内存安全:通过 heap scanning 算法减少 C++ 代码库安全漏洞
谷歌改善 Chrome 内存安全:通过 heap scanning 算法减少 C++ 代码库安全漏洞
186 0
谷歌改善 Chrome 内存安全:通过 heap scanning 算法减少 C++ 代码库安全漏洞
|
API C++ Windows
C++命名规则&书写规范
C++命名规则&书写规范
1019 0
|
算法 Java Linux
谷歌语言标准中,C++成绝对的佼佼者
谷歌发布了一份调查报告[pdf](首页如下图),指出C++是市场上最高效的编程语言。该互联网巨头将一个紧凑的算法实现在四大预言——C++,Java,Scala以及它自己的编程语言Go之上——然后评估运行结果以找出‘差异因素’。
747 0
|
C++ Windows 分布式数据库
|
算法 C++ 程序员
Visual C++编程命名规则
一、程序风格:      1、严格采用阶梯层次组织程序代码:      各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。要求相匹配的大括号在同一列,对继行则要求再缩进4格。例如:      2、提示信息字符串的位置      在程序中需要给出的提示字符串,为了支持多种语言的开发,除了一些给调试用的临时信息外,其他所有的提示信息必须定义在资源中。
1103 0
|
1天前
|
编译器 C语言 C++
C++入门3——类与对象2-2(类的6个默认成员函数)
C++入门3——类与对象2-2(类的6个默认成员函数)
13 3
|
1天前
|
存储 编译器 C语言
C++入门2——类与对象1(类的定义和this指针)
C++入门2——类与对象1(类的定义和this指针)
10 2
|
18小时前
|
C++
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
C++番外篇——对于继承中子类与父类对象同时定义其析构顺序的探究
27 1