编程规范的利剑
简介
匈牙利命名法(Hungarian Notation)是由微软公司的一名匈牙利程序员查尔斯·西蒙尼(Charles Simonyi)提出的一种编程命名规范,这种命名方法通过在变量名中加入表示数据类型的前缀,使代码更加易读、易理解,本文将详细介绍匈牙利命名法的基本原则、具体规则以及在实际编程中的应用。
基本原则
1、变量名=属性+类型+对象描述:每个变量名由三部分组成,依次为属性、类型和对象描述,一个整型变量可以命名为g_nCount
,其中g_
表示全局变量,n
表示整型,Count
表示计数。
2、容易记忆与理解:变量名应具有明确的含义,便于记忆和理解,使用szName
来表示字符串类型的名称变量,比单纯的name
更具可读性。
3、保证名字连贯性:在大型项目中,保持变量命名的一致性尤为重要,这不仅有助于团队合作,还能提高代码的可维护性,所有布尔类型的变量都以b
开头,如bIsValid
和bIsInitialized
。
具体规则
变量属性
g_:全局变量
c_:常量
m_:C++类成员变量
s_:静态变量
变量类型
a:数组
p:指针
fn:函数
v:void
h:句柄
l:长整型
b:布尔型
f:浮点型
d:双精度浮点型
sz:以零结尾的字符串
s:字符串
ch:字符型
w:无符号短整型
i:整型
ui:无符号整型
ul:无符号长整型
dw:双字(DWORD)
c:计数器(通常用cnt)
r:实型
u:无符号
by:字节型
tm:文本计量(Text Metric)
x, y:坐标值(短整数)
示例
变量名 | 类型 | 描述 | 含义 |
hwnd | 句柄 | 窗口句柄 | 窗口句柄 |
pfnEatApple | 指针 | 函数指针 | 指向EatApple 函数的指针 |
g_cch | 全局变量 | 字符计数 | 对字符进行计数的全局变量 |
实际应用
提高代码可读性
通过使用匈牙利命名法,开发者可以快速了解变量的类型和用途,在阅读代码时,看到pDoc
即可知道这是一个指向文档对象的指针,而无需查阅其他资料。
减少错误
明确的命名规范可以减少拼写错误和类型混淆,将字符串变量命名为szName
而不是name
,可以避免将其误认为是整型或其他类型。
增强团队协作
在团队开发中,统一的命名规范可以大大提高代码的一致性和可维护性,新成员加入项目时,也能更快地适应现有的代码风格。
提高开发效率
虽然初学者可能会觉得增加前缀会使变量名变长,但随着经验的积累,开发者会发现这种命名方式实际上提高了编码效率,因为清晰的变量名减少了思考和查找的时间。
匈牙利命名法是一种有效的编程命名规范,通过在变量名中加入表示数据类型的前缀,使代码更加易读、易理解,它不仅提高了代码的可读性和可维护性,还减少了错误的发生,增强了团队协作,对于希望提升编程技能的开发者来说,掌握和应用匈牙利命名法无疑是一把利器。
FAQs
Q1: 为什么叫“匈牙利命名法”?
A1: 这种命名方法是由一位名叫查尔斯·西蒙尼的匈牙利程序员发明的,因此得名“匈牙利命名法”,他后来加入了微软公司,并将这种方法推广开来。
Q2: 是否所有变量都需要使用匈牙利命名法?
A2: 并非强制要求所有变量都使用匈牙利命名法,但其基本原则是推荐在复杂项目中采用这种命名规范,以提高代码的可读性和可维护性,对于小型或个人项目,可以根据个人喜好选择是否使用。
小伙伴们,上文介绍了“匈牙利命名法”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。