1. 文件命名
全部小写,用_区分 my_useful_class.cc
通常应尽量让文件名更加明确. http_server_logs.h 就比 logs.h 要好
内联函数必须放在 .h 文件中. 如果内联函数比较短, 就直接放在 .h 中.
2. 类型命名
类型名称的每个单词首字母均大写, 不包含下划线: MyExcitingClass, MyExcitingEnum.
class UrlTableTester { ...
typedef hash_map<UrlTableProperties *, string> PropertiesMap;
enum UrlTableErrors { ...
3. 变量命名
变量名一律小写, 单词之间用下划线连接. 类的成员变量以下划线结尾, 但结构体的就不用,
string table_name; // 可 - 用下划线。
class TableInfo {
private:
string table_name_; // 可 - 尾后加下划线。
string tablename_; // 可。
static Pool<TableInfo>* pool_; // 可。
};
struct UrlTableProperties {
string name;
int num_entries;
}
对全局变量没有特别要求, 少用就好
4. 常量命名
const int kDaysInAWeek = 7; 前缀+k
5. 函数命名
常规函数使用大小写混合, 取值和设值函数则要求与变量名匹配:
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_;
};
6. 命名空间命名
名字空间用小写字母命名, 并基于项目名称和目录结构: google_awesome_project.
7. 枚举命名
enum AlternateUrlTableErrors {
OK = 0,
OUT_OF_MEMORY = 1,
MALFORMED_INPUT = 2,
};
8. 宏命名
#define PI_ROUNDED 3.0