参考《Google C++编码规范》,部分根据个人喜好有所更改。
总的规则:
1. 类型和变量名一般为名词,如:FileOpener、num_errors。
2. 函数名通常是命令性的,如 openFile()、set_num_errors(),存取函数和其访问的变量名要吻合。
3. 除非缩写是大多数人都懂的常用缩写,并且指代明确,否则不要使用缩写。
文件命名:
4. 文件名全部小写,以下划线“_”连接,如:my_useful_class.cpp、my_useful_class.h。
类型命名:
5. 类型命名,每个单词以大写字母开头,不包含下划线,整体命名为名词,如MyExcitingClass、MyExcitingEnum。这里所说的类型包括:类、结构体、类型定义(typedef)、枚举。
变量命名:
6. 变量名一律小写,单词间以下划线相连,类的成员变量以m_开头,类的静态成员变量以ms_开头,如 my_exciting_local_variable、m_my_exciting_member_variable、ms_my_exciting_member_variable。对于指针变量,一般加上p前缀,其他类型视情况(如名字长短,寿命长短,作用域内其他变量数量情况等),类型前缀可加可不加。
7. 结构体的数据成员可以和普通变量一样,不用加m_前缀。
8. 全局变量:尽量不用,如果要用,以g_开头;如果是全局静态变量,以gs_开头。
常量命名:
9. 所有编译时常量,无论是局部的、全局的还是类中的,均以字母k开头,后面每个单词首字母大写,如:kDaysInAWeek。之所以用k,是因为c前缀已经被char类型占用。
函数命名:
10. 函数和方法命名,第一个单词的首字母小写,其后单词首字母大写,第一个单词为动词,如:getColor()。
命名空间:
11. 命名空间的名称全小写,其命名基于项目名称和目录结构,如:google_awesome_project
枚举值和宏
12. 枚举值和宏命名,所有字母均大写,单词之间用下划线分割。