tags:
- Cpp
Google C++ Style Guide
Google C++ 命名规范是 Google C++ Style 的一小部分,主要介绍 Google 的 C++ naming convention style。你可以根据项目需求调整命名风格,但遵循统一规范能提升可读性。
良好的命名是最能够体现代码风格的行为之一,好的命名能够让你仅通过符号名,你就可以知道这个符号名代表着什么,到底是变量、常量、函数、类?随着代码规模增长,合理的命名习惯有助于提高可读性和维护性,使代码更加清晰易懂。
命名的核心作用是提高可读性,所以除了那些广为人知的缩写外,命名应尽量避免缩写的使用。此外,如果现有信息可以简单的得出符号所代表的含义的话,命名应避免不必要的冗长。
文件名应当采用全小写的 snake case convention,每个单词使用 -
或 -
间隔开。比如:
my-file.cpp
my_file.cpp
my_file_test.cpp
此外,当命名头文件时,应当避免与已经存在的文件名冲突( /usr/include
中的头文件)。
对于局部变量和全局变量的命名,一律使用小写+下划线的方式,也就是 snake case。
int my_value;
std::string my_string;
对于类内的成员变量,一律在变量名后加上 _
,如:
class MyClass {
private:
int class_value_;
std::string string_name_;
};
无论是类外的静态变量还是类内的静态变量,其命名都遵循全局变量的命名方式。
如果变量名是常量,则以 k 开头,遵循 camel case convention:
static const int kMyInteger = 10;
const std::string kMyString = "Hello";
对于类类型的命名,一律使用大写驼峰命名方式(即 PascalCase),第一个字母大写的驼峰命名法:
class MyClass {};
struct MyData {};
union MyUnion {};
函数命名同样适用类似类类型的命名方式——大写驼峰命名。如:
int GetUserId() {}
void PrintData() {}
命名空间的命名采用 snake case convention。
采用大写驼峰命名,如:
enum ThreadState {
JOINABLE,
DETACHED,
FINISHED,
UNCREATED
};
宏使用全大写+下划线的方式,如:
#define MAX_BUFFER_SIZE 1024
模板参数使用 T 开头的大写驼峰命名:
template <typename TData>
class Container {};