Google 编程规范本地化、简化。如有需要,可参考 Google C++ code style guide原文:
http://google.github.io/styleguide/cppguide.html
本文档基于网上流传的Google C++编程风格指南
,由 edisonpeng(2009/3/25)
整理
本地化简化由MISAS
开发团队使用。在此分享以供各开发团队参考。
目录
命名约定
一致性命名规则,包括类型、变量、函数、常量、宏等等。
通用命名规则
函数、变量、文件命名应具有描述性,不要过度缩写。
类型和变量应该是名词,函数名用“命令性质”的动词。
命名方法:
尽可能给出描述性名词,提高代码可读性,目标是让别人快速理解。
禁止使用模糊的缩写或随意的字符。
类型和变量名一般为名词,如num_errors。
函数名通常是指令性的,如OpenFile()、set_num_errors(),访问函数需要描述的更细致,要与其访问的变量相吻合。
缩写:
除非是放在项目外也非常明了的缩写,如IOT、DNS、IP等
除linux命令常用缩写(如 ls、pwd、usr等)外,不要用省略字母的缩写。如count不要写成cnt
文件命名
文件名要全部小写,可以包含下划线(_)。已有命名约定要求的项目遵循项目要求。
不要使用已经存在于系统中的文件名,如Linux系统不要使用/usr/include下的文件名,如db.h。
类型命名
类型命名每个单词以大写字母开头,不包含下划线,如:MyExcitingClass、MyExcitingEnum。
所有类型命名————类、结构体、类型定义(typedef)、枚举,使用相同约定,例如:
// class and structs
class UrlTable {...}
class UrlTableTester {...}
struct UrlTableProperties {...}
// typedefs
typedef hash_map<UrlTableProperties *, string> PropertiesMap {...}
// enums
enum UrlTableErrors{...}
变量命名
变量名一律小写,单词间下划线相连,类的成员以下划线结尾,如
my_exciting_local_variable、my_exciting_local_variable_
全局变量尽量不用,如果一定要用,以g_为前缀以便与局部变量区分。
常量命名
常量命名前加 k,如:
const int kDaysInAWeek = 7
函数命名
普通函数,函数名大写字母开头,每个单词首字母大写,没有下划线:
AddTableEntry()
存取函数,函数名要与存取的变量名匹配。
class MyClass {
public:
...
int num_entries() const { return num_entries_; }
void set_num_entries(int num_entries)
{
num_entries_ = num_entries;
}
private:
int num_entries_;
};
短小的函数和内联函数也要使用小写字母
命名空间
全部小写,命名基于项目名称和目录结构
枚举命名
枚举值全部大写,单词间下划线项链 MY_EXCITING_ENUM_VALUE
。
枚举名称属于类型,因此大小写混合。
enum UrlTableErrors {
OK = 0,
ERROR_OUT_OF_MEMORY = 1,
ERROR_MALFORMED_INPUT = 2,
};
宏命名
禁止使用宏。
命名规则例外
参考现有或相近命名约定