專欄導航
上一篇:第2章,[標簽 Win32] :Windows 數據類型
回到目錄
下一篇:第2章,[標簽 Win32] :兼容 ASCII 字符與寬字符的 Windows 函數調用
本節前言
在初學編程的時候,我們給變量命令的時候,都是使用一些個比較簡單的名字。
那是因為,初學編程的時候,代碼量比較小,簡單好記的名字,足以滿足我們的學習需求。
然而,隨著代碼量的增長,這個時候,我們就需要一套規范,統一地,來對變量的名字,進行命名了。這可以讓變量的名字比較規范,整齊,容易看懂。
變量的命名規范有很多,在 Windows 程序設計領域,通行的變量命名規范,叫做匈牙利標記法。
本節,我們的任務,就是來講述匈牙利標記法。
其實,在本節之前,我們已經部分地講解了匈牙利標記法。然而,那個時候,并未系統地去講述。。本節,我們就要比較詳細地,來講解一下匈牙利標記法了。
想要學習本節內容,你最好首先學習過以下的文章鏈接中的內容。
參考課節:第2章 :Windows 字符數據類型
參考課節:第2章,[標簽 Win32] :Windows 數據類型
接下來,我們開始本節的講解。
一.? ? 匈牙利標記法
所謂的匈牙利標記法,它是說,在變量名的最左邊,是由一個或多個小寫英文字母組成的東西,用以表明變量的數據類型。我們可以把這一部分,叫做數據類型字段。比如說,h 代表句柄,i 或 n 代表整數,sz 代表【以零結尾的字符串】,等等。
在數據類型字段之后,是單詞組合,每一個單詞的首字母為大寫,其余的為小寫。
假定,我們要定義一個 int 型變量,用它來標識屏幕寬度。那么,它的數據類型為 int 型,所以呢,可以用 n 來作為前綴。屏幕寬度,用英文單詞表示為 screen width 。所以呢,這個變量的名字,就成了 nScreenWidth 。
本專欄既講解 Windows API 知識,也會講解 MFC 的知識。在 MFC 里面,我們還會跟各種類打交道。
如果某一個變量,它是類的成員變量,則我們還需要在原本的匈牙利標記法之前,加上【m_】前綴。
假定我們想要命名的,表示屏幕寬度的變量 nScreenWidth 是一個類的成員變量,則我們需要給它設定的變量名字為 m_nScreenWidth 。
關于匈牙利標記法,基本內容就這些了。
接下來,我們來看一看各種數據類型的前綴表示法。
二.? ? 匈牙利標記法前綴總結表
前綴 | 數據類型 |
c | char 或 WCHAR 或 TCHAR |
cb | 整數類型,意思是【字節數】 |
by | BYTE,無符號字符 |
n 或 i | 整數,int 型或 short 型 |
x | int 型,表示 x 的坐標 |
y | int 型,表示 y 的坐標 |
cx | int 型,表示 x 的長度,c 表示 count(計數) |
cy | int 型,表示 y 的長度,c 表示 count(計數) |
b 或 f | BOOL 型,其實是 int 型。f 表示 flag(標志) |
w | WORD,無符號短整型 |
l | LONG,長整型 |
dw | DWORD,無符號長整型 |
fn | 函數,fn 是 function(函數)的簡寫 |
lpfn | 指向函數的長指針。從 32 位操作系統開始,長指針與指針是同樣的意思。所以,lpfn,表示的是【函數指針】這一數據類型。 |
s | 字符串 |
sz | 以零結尾的字符串 |
h | 句柄,h 是 handler(句柄)的簡寫 |
p | 指針 |
lp | 長指針,從 32 位操作系統開始,p 和 lp 等價。lp 是 long pointer 的意思 |
psz 或 lpsz | 指向以零結尾的字符串的指針,其實和 sz 是一個意思。因為,C/C++ 中表示字符串,都是只給出字符指針,而非給出全部字符。 |
m_ | 這個前綴,主要用于類的成員變量,用作類的成員變量名的前綴。 |
三.? ? 注意點
(一)BOOL 型前綴,b 與 f
如果某一個變量為 BOOL 型,則通常使用 b 作為前綴。當然了,你也可以使用 f 前綴。在 C/C++ 中,某一個標志變量,常常是作為 BOOL 型來處理的,只使用其 TRUE 與 FALSE 兩個值。TRUE 就是 1,數值上與 C++ 數據類型 bool 中的 true 相等。FALSE 就是 0,數值上與 C++ 數據類型 bool 中的 false 相等。
(二)句柄前綴,h
關于【句柄】的概念,我們在之前的講解中,雖然有提到。但是呢,有可能,此刻,你對它還是缺乏概念。關于【句柄】,在后面,我們會使用到它的。用得多了,你就明白【句柄】這個概念了。
結束語
匈牙利標記法,不算難,但是呢,也確實是需要大家來掌握的一個小知識點。
可能記不住這里的全部的內容。用到了,隨時查閱就好了。用得多了,慢慢地就熟悉了。
?專欄導航
上一篇:第2章,[標簽 Win32] :Windows 數據類型
回到目錄
下一篇:第2章,[標簽 Win32] :兼容 ASCII 字符與寬字符的 Windows 函數調用