目前业界共有四种命名法则:驼峰命名法、匈牙利命名法、帕斯卡命名法 和 下划线命名法,其中前三种是较为流行的命名法。
1 . 匈牙利命名:
开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩写,且每个单词的第一个字母都大写。
int iMyAge; // i 是 int 类型的缩写。
char cMyName[10]; // c 是 char 类型的缩写。
float fManHeight; // f 是 float 类型的缩写。
匈牙利命名广泛应用于象 Microsoft Windows 这样的环境中, Windows 编程中用到的变量(还包括宏)的命名规则都是匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯- 西蒙尼(Charles Simonyi) 提出的。
匈牙利命名法 通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等这些符号可以多个同时使用,顺序是先 m_(成员变量), 再指针,再简单数据类型,再其它 。
例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
匈牙利命名法中常用的小写字母的前缀:
属性 + 类型 + 描述。属性一般是 小写字母 + _ :
g_ : 全局变量
m_ : 类成员变量
s_ : 静态变量
c_ : 常量
前缀 | 类型 |
---|---|
a | 数组 (Array) |
b | 布尔值 (Boolean) |
by | 字节 (Byte) |
c | 有符号字符 (Char),用 c 开头 cCount |
cb | 无符号字符 (Char Byte,没有多少人用) |
cr | 颜色参考值 (ColorRef) |
d | double 用d开头 dDeta |
f | float 用f开头 fAvg |
cx,cy | 坐标差(长度 ShortInt) |
w | Word,unsigned int(WORD) 用w开头 wCount |
dw | Double Word,unsigned long int(DWORD) 用dw开头 dwBroad |
fn | 函数 |
h | Handle(句柄) |
i | 整型 int ,用 i 开头 iCount |
n | short int 短整型 用 n 开头 nStepCount |
l | Long Int 长整型 用 l 开头 lSum |
lp | Long Pointer |
m_ | 类的成员 |
np | Near Pointer |
p | Pointer |
s | 字符串类型,用s开头 sFileName |
sz | 以null做结尾的字符串型 (String with Zero End),用\0结尾的字符串 用sz开头 szFileName |
2 . 驼峰式命名法(camel方法):
驼峰式命名法:第一个单词以小写字母开始;第二个单词的首字母大写,或从第二个单词开始,后面的每一个单词的首字母都采用大写字母,又名 小驼峰式命名法: 第一个单词首字母小写,后面其他单词首字母大写。
- 变量 一般用 小驼峰法标识。
int myAge;
char myName[10];
float manHeight;
3 . 帕斯卡命名法(pascal方法):
帕斯卡命名法:又叫 大驼峰式命名法。相比小驼峰法,大驼峰法把第一个单词的首字母也大写了, 每个单词的第一个字母都大写。即 骆驼命名法是首字母小写,而帕斯卡命名法是首字母大写。
int MyAge;
char MyName[10];
float ManHeight;
public class DataBaseUser
小驼峰式 命名规则(第一个单词首字母小写,后面所有单词的首字母都大写):firstName, camelCase
大驼峰式 命名规则(所有单词的首字母都大写):FirstName, CamelCase
4. 下划线命名规则:
下划线法是随着 C语言 的出现流行起来的,在 UNIX/LIUNX 这样的环境,以及 GNU 代码中使用非常普遍。
#define TEMPERATURE_NUM; //常量
void temperature_simple(void); //函数
int temperature_sensor; //变量
下面是分别用 大驼峰式命名法 和 下划线法命名 的同一个函数:
print EmployeePaychecks(); //骆驼式命名法 ---- 函数名中的每一个逻辑断点都有一个大写字母来标记
print _employee_paychecks(); //下划线法 ---- 函数名中的每一个逻辑断点都有一个下划线来标记。
小结:
MyData 是一个帕斯卡命名的示例 。
myData 是一个驼峰命名法,它第一个单词的第一个字母小写,后面的单词首字母大写,看起来像一个骆驼。
iMyData 是一个匈牙利命名法,它的小写的i说明了它的型态,后面的和帕斯卡命名相同,指示了该变量的用途。
通常每种语言都有自己的 Coding Style,比如 C/C++ 和 python 是下划线,java 和 go 是驼峰。
所以,对于要使用哪种命名法可以根据个人的代码编写风格,也是可使用不同的命名规范混合使用。
如:骆驼 + 下划线 (int temperature_Sensor;)
参考资料:
[1]: CSND博客:Google 的 C++ 代码规范