记录此书中的内容前先介绍目前业界常用的几种标识符命名方法:
一、骆驼命名法(Camel Case)
单词之间不以空格、连接符(-)或底线(下划线_)连接,有两种格式:
- 小驼峰式命名法(lower camel case)
标识符第一个单词的首字母小写,其余单词首字母大写,例如:myFirstName
Java中的方法名和变量名通常采用此方法命名 - 大驼峰式命名法(upper camel case)
标识符所有单词首字母大写,例如:MyFirstName
Java中的类名;C#中的编码惯例中,给公共成员变量(public)、受保护的成员变量(protect)或内部成员变量(internal)通常采用此方法命名
又成为“帕斯卡(Pascal)命名法”
二、帕斯卡命名法
见大驼峰式命名法
三、匈牙利命名法
在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域、类型等,这些符号可以多个同时使用,顺序是先m_(成员变量), 再指针,再简单数据类型,再其它。
前缀之后可以采用下划线连接后面的变量名。
四、下划线命名法
下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍 。
下划线连接的单词通常全小写。
6.1 系统化定义变量名
6.2 用匈牙利表示法命名变量
6.3 用变量名前缀表示变量数据类型
前缀示例 | 前缀含义 |
---|---|
a | 数组 |
arr | 数组 |
b | bool,布尔型变量 |
c | character,字符型变量 |
d | double,双字节型变量 |
f | float,浮点型变量 |
fd | 文件描述符 |
fp | 文件指针型变量 |
h | handle,句柄 |
i | 整数型变量 |
n | 整数型变量 |
p | 指针型变量 |
pfn | 函数指针 |
r | 引用型变量 |
s | String,字符串型变量 |
str | CString型变量 |
u | 无符号型变量 |
w | word型变量 |
6.4 用变量名前缀表示变量存储类型
前缀示例 | 前缀含义 |
---|---|
a | auto |
s | static |
g | global |
e | extern |
r | register |
6.5 用函数名前缀表示函数功能
前缀 | 含义 |
---|---|
Avr | 平均值 |
Cnt | 计算数据个数 |
Check | 检查某参数 |
Get | 获取某参数 |
Set | 设定某参数 |
Is | 用于提出“是什么”的疑问 |
Key | 从数据中只获取关键字的值 |
Max | 计算最大值 |
Mid | 计算中间值 |
Min | 计算最小值 |
6.6 编写个人专属前缀
7.1 用有意义的名称命名
7.2 不要使用相似的变量名
7.3 在不影响含义的前提下尽可能简短命名
单词 | 缩写 |
---|---|
function | func |
number | num |
day | d 或 dd |
month | m 或 mm |
year | y 或 yy |
temporary | temp |
terminate | end |
terminal | term |
7.4 用下划线和大小写区分较长变量名
7.5 变量名不要以下划线开始
7.6 不要过度使用下划线
7.7 合理使用大小写命名标识符
程序员命名变量时区分大小写相关惯例:
- 变量和对象名以小写字母开始
- 函数、类、结构体、共用体等名称以大写字母开始(包括方法)
- 符号常量或宏函数名的所有字母均大写
7.8 7.9 不要滥用大小写区分
C语言中明确区分大小写,较为古老的编程语言则不区分大小写,Basic或FORTRAN就是如此。有些程序员凭着“C语言区分大小写”这一点投机取巧,仅通过大小写区分各变量,而不是注意命名。如下:
int num; /* 第一个输入变量 */
int Num; /* 第二个输入变量 */
int NUM; /* 第三个输入变量 */
此时,如果不小心将num写成Num,第一个数值就会被存入完全不同的变量,最后得出意料外的处理结果。
7.10 不能用相同名称同时命名类和变量
以下示例是仅用大小写区分类名和变量名:
class MyClass {
// ……略……
}
MyClass myclass;