第2章,[标签 Win32] :匈牙利标记法
专栏导航
上一篇:第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 函数调用