谷歌风格C++命名规则
Posted Overboom
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谷歌风格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
以上是关于谷歌风格C++命名规则的主要内容,如果未能解决你的问题,请参考以下文章