匈牙利表示法
规则1:对变量加前缀
始终在一个变量的前面加上一个或者多个小写字母来作为前缀,这些字母用来表示该变量的类型。在大多数情况下,这是变量类型的第一个字母,因此很容易记住应该使用哪一个字母。下面的示例显示了最常用的一些前缀。
a |
数组 |
o |
对象 |
c |
字符 |
pal |
调色板 |
d |
日期 |
psz |
指向以零结尾的字符串的指针 |
dbl |
双精度数 |
ptr |
指针 |
dc |
设备描述体 |
r |
实数 |
dw |
双字 |
rc |
矩形 |
f |
标志、布尔值、逻辑值 |
rgb |
颜色变量 |
h |
句柄 |
rsrc |
资源 |
i |
整型 |
sgl |
单精度数 |
inst |
实例 |
si |
短整型 |
l |
长型 |
sz |
以零结尾的字符串 |
li |
长整型 |
u |
无符号数 |
lp |
长指针 |
ui |
无符号的整型或字节 |
msg |
消息 |
w |
字 |
n |
数值 |
wnd |
窗口 |
规则2:标识状态变量
有些变量表示一个对象—如数据库、域或者控件的状态。它们甚至可能用来存储另一个变量的状态。告诉其他程序员一个变量正在监视某个对象的当前状态有助于他们看到该变量在程序中的重要性。你可以使用以下的三字符限定词来标识状态变量:
New |
新状态 |
Sav |
以保存状态 |
Tem |
临时状态 |
规则3:使用标准限定词
标准限定词有助于其他人立即看出某个变量的用途。这不是该变量所包含的信息类型,而是关于该变量如何与其他变量相互作用的信息。例如,使用Clr限定词可以告诉查看者,这个变量是以某种方式与颜色一同使用的。甚至可以组合使用限定词以增强它们的效果并且说明该变量是如何使用的。例如,cClrCrs是一个可以决定显示器上光标颜色的字符变量。使用1~3个这样的限定词通常就可以足以说明变量的用途了。
Ar |
数组 |
Msg |
消息 |
Attr |
属性 |
Name |
名称 |
B |
底部 |
Ntx |
索引文件 |
Clr |
颜色 |
R |
右边 |
Col |
列 |
Rec |
记录编号 |
Crs |
光标 |
Ret |
返回值 |
Dbf |
数据库文件 |
Scr |
屏幕 |
F |
第一个 |
Str |
字符串 |
File |
文件 |
T |
顶部 |
Fld |
字段 |
X |
行 |
L |
上一个/左边 |
Y |
列 |
规则4:添加说明文字
一旦清晰地定义了变量的内容和用途,就可以使用一些说明文字来进一步说明其定义。例如,可能有一个长指针指向某个包含雇员名称的字符串:lpszEmpName。前两个字母(lp)指出这是一个长指针。接下来的两个字母(sz)指出这是一个以零(或者NULL)结尾的字符串。其余的字母(EmpName)指出这是一个雇员的名称。(请注意,在例中使用了标准限定词Name)。在一段代码中看到类似的变量名可以立即使你知道它所具有的含义。
规则5:创建一个以上的变量
在许多时候,使用一个变量将无法满足特定模块中的所有需求。在这些情况下,可能想要创建一个以上的该类型的变量,而且只需对它们编号即可。或许还可以使用某种编号指示符来指定其功能。
1,2,3 |
cSavClr1, cSavClr2等变量中的状态指针引用 |
Max |
nFldMax中的严格上限,字段的最大编号 |
Min |
nRecMin中的严格下限,记录的最小编号 |
Ord |
某种类型的序号 |