網路城邦
上一篇 回創作列表 下一篇  字體:
匈牙利命名法
2007/08/19 17:57:29瀏覽12500|回應1|推薦17

文章出處:BugLu的專欄

本文已修訂使用台灣用語,希望能提供給從事軟體研發相關人員與莘莘學子參考之用途,適用 C & C++ 使用 Windows API 寫作程式參照。


 
變數(還包括巨集)的命名規則,比較系統和徹底的有 Windows 程式設計中用到的匈牙利命名法。匈牙利命名法通過在變數名前面加上相應的小寫字母的符號標識作為字首,標識出變數的作用範圍,類型等。這些符號可以多個同時使用,順序是先m_(成員變數),再指標,再簡單數據類型,再其他。例如:m_lpszStr, 表示指向一個以0字元結尾的字串的長指標成員變數。

有關匈牙利命名法的一點有意思的說明是它的名字的由來。這種命名技術是由一位能幹的 Microsoft 程式員查爾斯·西蒙尼(Charles Simonyi) 提出的,他出生在匈牙利。在 Microsoft 公司中和他一起工作的人被教會使用這種約定。這對他們來說一切都很正常。但對那些 Simonyi 領導的項目組之外的人來說卻感到很奇特,他們認為這是死板的表達方式,甚至說代有這樣奇怪的外觀是因為它是用匈牙利文寫的。從此這種命名方式就被叫做匈牙利命名法。匈牙利命名法關鍵是:標識符的名字以一個或者多個小寫字母開頭作為字首;字首之後的是首字母大寫的一個單詞或多個單詞組合,該單詞要指明變數的用途。 

匈牙利命名法中常用的小寫字母的字首


但是在任何情況下,都硬性規定使用匈牙利命名法是迂腐的。尤其是 Unix 程式設計,在使用沒有變數名、關鍵字自動補齊功能的編輯器,如 vi 下,去敲入大小寫混合的變數名是痛苦的。其實只要注意兩個原則:1) 含義清晰,不易混淆; 2) 不和其它模組、系統API的命名空間相衝突即可。

1.有意義的為變數名、巨集名加上本模組的關鍵字,就不至於和其它模組、系統API的命名空間相衝突;例如: 巨集的名稱過短,如:DEBUG; 或_DEBUG,很可能和別的模組,系統模組相衝突;
2.局部變數尤其是循環變數外,使用約定俗成的 i,j,k ,沒有問題;
3.巨集、常數、列舉enum,全部用大寫字母;
4.全域變數加上字首 "g",後面跟上首字母大寫的單詞; 

MFC、HANDLE、控件及結構的命名規範
 
一般字首命名規範
 
變數命名規範
 
應用程式符號命名規範
 
Microsoft MFC 巨集命名規範
 
庫標識符命名法
 
靜態庫版本命名規範
 
動態連結庫命名規範
 
Windows.h中新的命名規範

( 知識學習其他 )
推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=start8588&aid=1171731
 引用者清單(1)  
2009/10/20 12:04 【A HA! 心情雜物間】 命名原則 vs. 匈牙利命名法

 回應文章

C.S.Julius
等級:8
留言加入好友
ㄏ~~果然是同行唷~~
2007/08/21 15:35
[轉錄] 匈牙利規則 ㄏ~~果然是同行唷~~
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Think Do,I Will
C.S.Julius

在父母的夢想與理想中溺斃了!