匈牙利命名法是一種編程時(shí)的命名規(guī)范。基本原則是:變量名=屬性+類型+對(duì)象描述,其中每一對(duì)象的名稱都要求有明確含義,可以取對(duì)象名字全稱或名字的一部分。命名要基于容易記憶容易理解的原則。保證名字的連貫性是非常重要的。
舉例來(lái)說(shuō),表單的名稱為form,那么在匈牙利命名法中可以簡(jiǎn)寫為frm,則當(dāng)表單變量名稱為Switchboard時(shí),變量全稱應(yīng)該為
frmSwitchboard。這樣可以很容易從變量名看出Switchboard是一個(gè)表單,同樣,如果此變量類型為標(biāo)簽,那么就應(yīng)命名成
lblSwitchboard。可以看出,匈牙利命名法非常便于記憶,而且使變量名非常清晰易懂,這樣,增強(qiáng)了代碼的可讀性,方便各程序員之間相互交流代
碼。
這種命名技術(shù)是由一位能干的Microsoft程序員查爾斯·西蒙尼(Charles Simonyi) 提出的,他出生在匈牙利。在
Microsoft 公司中和他一起工作的人被教會(huì)使用這種約定。這對(duì)他們來(lái)說(shuō)一切都很正常。但對(duì)那些 Simonyi
領(lǐng)導(dǎo)的項(xiàng)目組之外的人來(lái)說(shuō)卻感到很奇特,他們認(rèn)為這是死板的表達(dá)方式,甚至說(shuō)帶有這樣奇怪的外觀是因?yàn)樗怯眯傺览膶懙摹拇诉@種命名方式就被叫做匈牙
利命名法。
據(jù)說(shuō)這種命名法是一位叫 Charles Simonyi
的匈牙利程序員發(fā)明的,后來(lái)他在微軟呆了幾年,于是這種命名法就通過(guò)微軟的各種產(chǎn)品和文檔資料向世界傳播開了。現(xiàn)在,大部分程序員不管自己使用什么軟件進(jìn)
行開發(fā),或多或少都使用了這種命名法。這種命名法的出發(fā)點(diǎn)是把量名變按:屬性+類型 +對(duì)象
描述的順序組合起來(lái),以使程序員作變量時(shí)對(duì)變量的類型和其它屬性有直觀的了解,下面是HN變量命名規(guī)范:
屬性部分
全局變量
g_
常量
c_
c++類成員變量
m_
靜態(tài)變量
s_
類型部分
指針
p
函數(shù)
fn
無(wú)效
v
句柄
h
長(zhǎng)整型
l
布爾
b
浮點(diǎn)型(有時(shí)也指文件)
f
雙字
dw
字符串
sz
短整型
n
雙精度浮點(diǎn)
d
計(jì)數(shù)
c(通常用cnt)
字符
ch(通常用c)
整型
i(通常用n)
字節(jié)
by
字
w
實(shí)型
r
無(wú)符號(hào)
u
描述部分
最大
Max
最小
Min
初始化
Init
臨時(shí)變量
T(或Temp)
源對(duì)象
Src
目的對(duì)象
Dest