小甲鱼 发表于 2014-5-3 16:08:29

第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

drin 发表于 2014-5-3 19:27:27

第一讲要出了?:loveliness::loveliness::loveliness:

福禄娃娃 发表于 2014-5-3 20:24:35

确实蛮方便的,希望老师多举实例。
已看完第0课

myisland 发表于 2014-5-4 10:45:50

支持,刚看完C++,正好要找点新东西学学:lol:

maiyi 发表于 2014-5-4 11:39:02

好{:1_1:}!!!!!

秦晓彬 发表于 2014-5-4 14:05:19

http://wenku.baidu.com/link?url=RaRGtLI_XjdLC2XcaCvRiwQNqYyCtOTt32WY5u_5z4DjRxdla37r0MpeD7cDhhIUrQkEQjgvibaRHnjEyTdTLd12JUAyFBTOESavGZMHHE3
有兴趣的可以看一下,表示小宝看不下去,要是有人可总结一下就好了
:titter::titter::titter::titter:

Diu 发表于 2014-5-4 22:56:38

长知识了,嘿嘿

E=MC2 发表于 2014-5-5 10:20:29

不错,001课已看完。

swsm 发表于 2014-5-10 15:36:17

酷!!!真酷!!!!

呆木木 发表于 2014-5-10 23:46:22

总结的好好!!!

purplepower99 发表于 2014-5-31 09:27:44

慢慢来,呵呵。不着急!

shipeixin729 发表于 2014-6-12 15:36:26

以后变量命名,也用这种方式吗,追随经典

我是桃川人 发表于 2014-6-22 12:23:49

Win32汇编有讲这匈牙利命名。

秋枫落叶 发表于 2014-7-21 16:03:50

的确很好

羽随风 发表于 2014-7-24 15:55:42

lihai a xuexiele

『浴火凤凰』 发表于 2014-7-28 15:41:04

:big好的

超级鑫 发表于 2014-7-29 21:26:16

多谢分享!{:1_1:}

purplepower99 发表于 2014-8-9 22:59:43

记得之前看过一篇文章说匈牙利命名法已经过时了,现代的代码已经不提供这个方法了,是真的吗?谢谢

狂潮丶 发表于 2014-8-20 16:46:52

已经阅读完毕。

小科来啦 发表于 2014-9-4 09:47:13

命名,好麻烦呀
页: [1] 2 3 4
查看完整版本: 第001讲:匈牙利命名法