匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。 匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人发起使用的, 结果它在微软内部逐渐流行起来,并且推广给了全世界的Windows开发人员。下面将介绍匈牙利命名法,后面的例子里也会尽量遵守它和上面的代码风格。 ### 匈牙利命名法详解 #### 一、概述 匈牙利命名法是一种由微软推广的编程规范,主要用于变量、函数、对象等符号的命名。这种方法的核心在于通过在名称中加入有意义的前缀来增强代码的可读性和可理解性。匈牙利命名法最初由微软公司的一位员工引入并在内部广泛传播,后来被推广至全球范围内的Windows开发者社区。 #### 二、匈牙利命名法的原则与特点 1. **前缀的使用**:匈牙利命名法强调使用前缀来指示变量的数据类型或用途。例如,“h”通常用于表示句柄(Handle),“sz”代表零终止字符串(Zero-terminated String)。 2. **增强代码可读性**:通过明确的前缀,程序员可以更容易地理解变量的含义和作用,从而减少代码注释的需求,提高开发效率。 3. **适应多种编程语言**:尽管匈牙利命名法最初是在C/C++环境中发展起来的,但其原则同样适用于其他编程语言,如Java、C#等。 4. **灵活性与扩展性**:该命名法允许开发者根据项目需求自定义前缀,便于团队成员之间共享一致的命名约定,同时也方便未来对代码库进行维护和扩展。 5. **兼容不同的编码风格**:匈牙利命名法可以与其他编程风格结合使用,比如驼峰式命名法(Camel Case)或下划线分隔法(Underscore Delimited),以满足不同项目的特定需求。 #### 三、常用前缀及其含义 以下列举了一些常用的匈牙利命名法前缀及其对应的含义: - **aArray**:数组(Array) - **bBOOL**:布尔类型(Boolean),通常用于表示真/假值。 - **byUnsignedChar**:无符号字符类型(Unsigned Char)。 - **cbCountofbytes**:字节数量计数(Byte Count)。 - **crColorreferencevalue**:颜色引用值(Color Reference Value)。 - **cxCountofx**:X方向的数量计数(Count of X)。 - **dwDWORD**:双字(Double Word),即32位无符号整数(Unsigned Long)。 - **fFlags**:标志位(Flags),通常表示多个比特位的状态。 - **fnFunction**:函数(Function)。 - **g_global**:全局变量(Global Variable)。 - **hHandle**:句柄(Handle)。 - **iInteger**:整型(Integer)。 - **lpLongpointer**:长指针(Long Pointer)。 - **m_Datamemberofaclass**:类的数据成员(Class Data Member)。 - **nShortint**:短整型(Short Int)。 - **pPointer**:指针(Pointer)。 - **sString**:字符串(String)。 - **szZeroterminatedString**:零终止字符串(Zero-Terminated String)。 - **tmTextmetric**:文本度量(Text Metric)。 - **uUnsignedint**:无符号整型(Unsigned Int)。 - **ulUnsignedlong**:无符号长整型(Unsigned Long)。 - **wWORD**:字(Word),通常是16位无符号整数(Unsigned Short)。 - **x,y**:坐标(Coordinates)。 - **vvoid**:空类型(Void)。 #### 四、应用示例 为了更好地理解匈牙利命名法的实际应用,我们可以考虑一个简单的例子: 假设我们有一个名为`CDocument`的类,其中包含一个指向文档对象的指针(`m_pDoc`)和一个表示客户数量的整数(`m_nCustomers`)。按照匈牙利命名法,这些成员变量可以这样声明: ```cpp class CDocument { public: // 指向文档对象的指针 LPCTSTR m_pDoc; // 客户数量 nShortint m_nCustomers; }; ``` 这里,`LPCTSTR`表示指向常量文本的长指针(`lpLongpointer`+`sString`+`tText`+`cConst`+`rReadOnly`+`yYielding`+`oOwnership`+`kKind`+`tType`+`eEnd`+`xX`+`sString`),而`nShortint`则表示短整型(`nShortint`)。 #### 五、结论 匈牙利命名法是一种有效的编程实践,它通过使用具有特定含义的前缀来提高代码的可读性和可维护性。虽然这种方法有其局限性和争议之处,但在许多项目特别是那些使用C/C++的项目中仍然非常受欢迎。掌握并正确应用匈牙利命名法能够帮助开发者编写更加清晰、易于理解的代码。
匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人发起使用的,
结果它在微软内部逐渐流行起来,并且推广给了全世界的Windows开发人员。下面将介绍匈牙利命名法,后面的例子里也会尽量遵守它和上面的代码风格。
还是那句话,并不是要求所有的读者都要去遵守,但是希望读者作为一个现代的软件开发人员都去遵守它。
a Array 数组
b BOOL (int) 布尔(整数)
by Unsigned Char (Byte) 无符号字符(字节)
c Char 字符(字节)
cb Count of bytes 字节数
cr Color reference value 颜色(参考)值
cx Count of x (Short) x的集合(短整数)
dw DWORD (unsigned long) 双字(无符号长整数)
f Flags (usually multiple bit values) 标志(一般是有多位的数值)
fn Function 函数
g_ global 全局的
h Handle 句柄
i Integer 整数
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助