匈牙利命名法Hungarian Notation

匈牙利命名法是一组变量命名规则,适用于各种程序语言。
具体来说匈牙利命名法是通过添加前缀(naming prefix)的方法注明变量的类型(type)和作用范围(scope)。
例如
int value; // non-Hungarian
int nValue; // the n prefix denotes an integer
double width; // non-Hungarian
double dWidth; // the d prefix denotes a double
在原变量名前面添加小写字母n可以帮助我们很直观地判断出该变量是整形变量,而不需要返回变量的定义处查询。
匈牙利命名法不是任何语言的官方规定,但是为了保证程序的可移植性与可读性,通常采用以下三级规则。表格中给出的是适用于C++语言的匈牙利命名规则。
1. 类型
直接添加在首字母大写的变量名前,表明变量基础类型
2. 附属类型
3. 作用范围
添加在变量名最前面,并用“_”隔开
以上给出的只是C++中常用的命名前缀。由于匈牙利命名法并非C++官方标准,当然我们也可以根据自己的需要定义命名规则。

在使用许多现代IDE的编程体验中,匈牙利命名法似乎已经不再具有从前那样的优势。因为在很多IDE中,只要你将鼠标悬停在变量名上,IDE将会自动显示变量类型。
另外,匈牙利命名法使更改变量类型变得更加复杂。例如你想把一个整形的变量‘nHeight’变为浮点型,除了在变量定义处修改,还要将所有的变量名替换为‘fHeight’。
尽管如此,匈牙利命名法还是拥有一些优势:
1. 匈牙利命名法可以让变量名更加简洁。例如我们定义一个记录苹果个数的变量:
用传统命名法: numOfApple
匈牙利命名法: nApple
2. 匈牙利命名法有效标明了变量有效范围
3. 对于习惯于用间接法(implicit assignment)为变量赋值的程序员来说,匈牙利命名法可以帮助他们区分变量名和函数。
参考:
1. http://www.learncpp.com/cpp-tutorial/29-hungarian-notation
2. http://en.wikipedia.org/wiki/Hungarian_notation

你可能感兴趣的:(C++)