匈牙利命名法,或称匈牙利命名规范是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。
在thinkqob的一篇
日志《
菜鸟编程十大好习惯》里,第五条里提到了“
匈牙利命名法”,那么什么是“匈牙利命名法”呢。Google一番后有了大致的结果。如下所述:
匈牙利命名法,或称匈牙利命名规范是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人查尔斯·西蒙尼(Charles Simonyi) 发起使用的,后来它在微软内部逐渐流行起来,并且推广给了全世界的Windows开发人员。那时大部分程序员不管自己使用什么软件进行开发,或多或少都使用了这种命名法。
匈牙利命名法的基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。
举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为frmSwitchboard。这样可以很容易从变量名看出Switchboard是一个表单,同样,如果此变量类型为标签,那么就应命名成lblSwitchboard。可以看出,匈牙利命名法非常便于记忆,而且使变量名非常清晰易懂,这样,增强了代码的可读性,方便各程序员之间相互交流代码。
遗憾的是,这种方法不仅使变量名字非常绕口,而且使改变变量类型的工作变得十分艰巨。在Windows3.1中,整型变量为16位宽.如果我们在开始时采用了一个整型变量,但是在通过30---40个函数的计算之后,发现采用整型变量宽度不够,这时我们不仅要改变这个变量的类型,而且要改变这个变量在这30--40个函数中的名字。
因为这种方法逐渐变得不切实际,除了一些顽固的Windows程序员外已经没有人再使用“匈牙利命名法”了。现在在某些特定的场合它依然存在,但大部分人已经抛弃它了。对于30行以下的函数,匈牙利命名法一般有优势,尤其是对界面编程来说。但对于有强烈的算法要求、尤其是有很多抽象类型的C++程序,匈牙利命名法简直是一个灾难。
现在有了很好的IDE工具,如:VC,SourceInsight等,选中变量,会自动提示告诉你它的声明和定义,这样匈牙利命名法就显得更没有必要了。
所以说好的方法也要看应用的场合与最终的效果,实际上良好的代码书写习惯比强制使用匈牙利命名法更为重要。
查看本文来源