1. 通用命名规则
具备描述性,适当缩写,类型和变量应该是名词,函数名可以用“命令性”动词
int num_errors; // Good.
int num_completed_connections; // Good.
int price_count_reader; // 无缩写
int num_errors; // "num" 是一个常见的写法
int num_dns_connections; // 人人都知道 "DNS" 是什么
2. 文件命名
文件名要全部小写,,可以包含下划线 (_) 或连字符 (-), 按项目约定来。 如果没有约定, 那么 “_” 更好
my_useful_class.cc
myusefulclass_test.cc
3. 类型命名
所有类型命名 —— 类,结构体,类型定义 (typedef),枚举 —— 均使用相同约定,即以大写字母开始,每个单词首字母均大写,不包含下划线
//类和结构体
class UrlTable { ...
class UrlTableTester { ...
struct UrlTableProperties { ...
//类型定义
typedef hash_map<UrlTableProperties *, string> PropertiesMap;
// using 别名
using PropertiesMap = hash_map<UrlTableProperties *, string>;
// 枚举
enum UrlTableErrors { ...
4. 变量命名
变量 (包括函数参数) 和数据成员名一律小写,单词之间用下划线连接。类的成员变量以下划线结尾,但结构体的就不用,如:
- a_local_variable
- a_struct_data_member
- a_class_data_member_
(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;
6. 函数命名
函数名的每个单词首字母大写 (即 “驼峰变量名” 或 “帕斯卡变量名”)
没有下划线
对于首字母缩写的单词,更倾向于将它们视作一个单词进行首字母大写 ,例如, 写作 StartRpc() 而非 StartRPC()
AddTableEntry()
DeleteUrl()
OpenFileOrDie()
全篇下载地址:链接:https://pan.baidu.com/s/1_dZZaS5xXqygRjuXI_1Rcg 密码:hvf1