韶华将逝,雄心未已;欲与众君,共习此技.

匈牙利命名法

上一篇 / 下一篇  2007-05-03 13:39:23 / 天气: 热 / 心情: 平静 / 个人分类:PHP & MySQL

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

相关阅读:

TAG: 匈牙利命名法

引用 删除 Corey   /   2007-08-28 13:55:59
此文已被 开发者在线 http://www.builder.com.cn/2007/0828/473962.shtml 收录,请与我联系: msn: zh1960010@sina.com
 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

数据统计

  • 访问量: 73464
  • 日志数: 265
  • 书签数: 19
  • 建立时间: 2007-05-03
  • 更新时间: 2008-04-15

RSS订阅

Open Toolbar