谷歌风格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


相关文章
|
8月前
|
存储 算法 数据库
【C++ 软件设计思路】学习C++中如何生成唯一标识符:从UUID到自定义规则
【C++ 软件设计思路】学习C++中如何生成唯一标识符:从UUID到自定义规则
374 0
|
8月前
|
编译器 程序员 API
【C++ auto推导】C++中的auto关键字及其推导规则
【C++ auto推导】C++中的auto关键字及其推导规则
192 0
|
8月前
|
安全 编译器 C++
【C/C++ 类型转换规则】一文了解C/C++ 中的类型转换规则,帮助你更好的编程
【C/C++ 类型转换规则】一文了解C/C++ 中的类型转换规则,帮助你更好的编程
127 0
|
编译器 C语言 C++
C/C++内存对齐规则(结构体、联合体、类)
C/C++内存对齐规则(结构体、联合体、类)
|
8月前
|
存储 Java C++
leetcode 2525 根据规则将箱子分类 c++ pyhton java c题解
leetcode 2525 根据规则将箱子分类 c++ pyhton java c题解
42 1
|
8月前
|
C语言 C++
C++|运算符重载(2)|运算符重载的方法与规则
C++|运算符重载(2)|运算符重载的方法与规则
|
8月前
|
存储 编译器 程序员
【C/C++ 基础知识 】深入C++:特殊成员函数的底层原理与规则
【C/C++ 基础知识 】深入C++:特殊成员函数的底层原理与规则
147 0
|
8月前
|
XML 算法 C语言
【C/C++ 静态代码检查工具 Cppcheck 】Cppcheck 检测器列表和检查规则大全一览
【C/C++ 静态代码检查工具 Cppcheck 】Cppcheck 检测器列表和检查规则大全一览
767 0
|
8月前
|
存储 安全 数据安全/隐私保护
穿越编程之海:探索谷歌Protocol Buffers库在C++中的应用
穿越编程之海:探索谷歌Protocol Buffers库在C++中的应用
433 0
|
8月前
|
IDE 开发工具 C++
C++变量命名规则
C++变量命名规则
109 0