匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。

例子

  举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为 frmSwitchboard。这样可以很容易从变量名看出Switchboard是一个表单,同样,如果此变量类型为标签,那么就应命名成 lblSwitchboard。可以看出,匈牙利命名法非常便于记忆,而且使变量名非常清晰易懂,这样,增强了代码的可读性,方便各程序员之间相互交流代码。

  据说这种命名法是一位叫 Charles Simonyi 的匈牙利程序员发明的,后来他在微软呆了几年,于是这种命名法就通过微软的各种产品和文档资料向世界传播开了。现在,大部分程序员不管自己使用什么软件进行开发,或多或少都使用了这种命名法。这种命名法的出发点是把变量名按:属性+类型+对象描述的顺序组合起来,以使程序员作变量时对变量的类型和其它属性有直观的了解,下面是HN变量命名规范。

  属性部分

  g_ 全局变量

  c_ 常量

  m_ c++类成员变量

  s_ 静态变量

  类型部分:

  指针 p

  函数 fn

  无效 v

  句柄 h

  长整型 l

  布尔 b

  浮点型(有时也指文件) f

  双字 dw

  字符串 sz

  短整型 n

  双精度浮点 d

  计数 c(通常用cnt)

  字符 ch(通常用c)

  整型 i(通常用n)

  字节 by

  字 w

  实型 r

  无符号 u

  描述部分

  最大 Max

  最小 Min

  初始化 Init

  临时变量 T(或Temp)

  源对象 Src

  目的对象 Dest

编辑本段举例

  hwnd : h 是类型描述,表示句柄, wnd 是变量对象描述,表示窗口,所以 hwnd 表示窗口句柄;

  pfnEatApple : pfn 是类型描述,表示指向函数的指针, EatApple 是变量对象描述,所以它表示指向 EatApple 函数的函数指针变量。

  g_cch : g_ 是属性描述,表示全局变量,c 和 ch 分别是计数类型和字符类型,一起表示变量类型,这里忽略了对象描述,所以它表示一个对字符进行计数的全局变量。

  上面就是HN命名法的一般规则。

posted on 2012-12-17 13:49  sgnannan  阅读(117)  评论(0编辑  收藏  举报