匈牙利命名法
许多 Windows 程序员都使用“匈牙利标记法”作为变量命名约定。这是为了纪念具有传奇色彩的微软程序员 Charles Simonyi。这种标记法非常简单,其基本原则为:
-
即变量名(标识符)以一个或者多个小写字母开始,这些字母表示变量的数据型态。例如:szCmdLine 中的 sz 代表“以0结尾的字符串(StringZero)”;在 hInstance 和 hPrevInstance 中的 h 前缀表示“句柄(Handle)”;在 iCmdShow 中的 i 前缀表示“整型(Integer)”。
-
前缀以后就是一个首字母大写(或者多个)的单词,这些单词清楚地指出了源代码内那个对象的用途。比如:m_szStudentName表示一个学生名字的类成员变量,数据类型是字符串型
-
当命名结构变量时,可以用结构名(或者结构名的一种缩写)的小写形式作为变量名称的前缀,或者用作整个变量名。例如:msg 变量是 MSG 型态的结构;wndclass 是 WNDCLASSEX 型态的一个结构;ps 是一个 PAINTSTRUCT 结构,rect 是一个 RECT 结构。
匈牙利表示法能够帮助程序写作者及早发现并避免程序中的错误。由于变量名既描述了变量的作用,又描述了其数据型态,就比较容易避免产生数据型态不合的错误。
下表列出了经常用到的变量名前缀:
1)属性前缀:
前缀 | 数据类型 |
---|---|
g_ | 全局变量 |
c_ | 常量 |
m_ | c++类成员变量 |
s_ | 静态存储变量 |
rg_ | 寄存器变量 |
ex_ | 外部变量 |
2)一般变量类型前缀:
前缀 | 数据类型 |
---|---|
c | char 8位字符 ;cGrade |
str,s |