第001讲:匈牙利命名法
匈牙利命名法许多 Windows 程序员都使用“匈牙利标记法”作为变量命名约定。这是为了纪念具有传奇色彩的微软程序员 Charles Simonyi。
这种标记法非常简单,即变量名以一个或者多个小写字母开始,这些字母表示变量的数据型态。例如:szCmdLine 中的 sz 代表“以0结尾的字符串(StringZero)”;在 hInstance 和 hPrevInstance 中的 h 前缀表示“句柄(Handle)”;在 iCmdShow 中的 i 前缀表示“整型(Integer)”。
当命名结构变量时,可以用结构名(或者结构名的一种缩写)的小写形式作为变量名称的前缀,或者用作整个变量名。例如:msg 变量是 MSG 型态的结构;wndclass 是 WNDCLASSEX 型态的一个结构;ps 是一个 PAINTSTRUCT 结构,rect 是一个 RECT 结构。
匈牙利表示法能够帮助程序写作者及早发现并避免程序中的错误。由于变量名既描述了变量的作用,又描述了其数据型态,就比较容易避免产生数据型态不合的错误。
下表列出了在本系列视频教程中经常用到的变量名前缀:
前缀数据类型
c char 或 WCHAR 或 TCHAR
by BYTE (无符号字符)
n short(短整型)
i int(整型)
x, y int,表示 x 坐标和 y 坐标
cx, cy int,表示 x 或 y 的长度,c 表示“count”(计数)
B 或 fBOOL(int);f 表示“flag”
wWORD(无符号短整型)
lLONG(长整型)
dwDWORD(无符号长整型)
fn函数
s字符串
sz 以零结束的字符串
h句柄
p指针
WinSDK 第一讲要出了?:loveliness::loveliness::loveliness: 确实蛮方便的,希望老师多举实例。
已看完第0课 支持,刚看完C++,正好要找点新东西学学:lol: 好{:1_1:}!!!!! http://wenku.baidu.com/link?url=RaRGtLI_XjdLC2XcaCvRiwQNqYyCtOTt32WY5u_5z4DjRxdla37r0MpeD7cDhhIUrQkEQjgvibaRHnjEyTdTLd12JUAyFBTOESavGZMHHE3
有兴趣的可以看一下,表示小宝看不下去,要是有人可总结一下就好了
:titter::titter::titter::titter: 长知识了,嘿嘿 不错,001课已看完。 酷!!!真酷!!!! 总结的好好!!! 慢慢来,呵呵。不着急! 以后变量命名,也用这种方式吗,追随经典 Win32汇编有讲这匈牙利命名。 的确很好 lihai a xuexiele
:big好的 多谢分享!{:1_1:} 记得之前看过一篇文章说匈牙利命名法已经过时了,现代的代码已经不提供这个方法了,是真的吗?谢谢 已经阅读完毕。 命名,好麻烦呀