匈牙利命名法是一组变量命名规则,适用于各种程序语言。
具体来说匈牙利命名法是通过添加前缀(naming prefix)的方法注明变量的类型(type)和作用范围(scope)。
例如
</div><div><div>
int value; // non-Hungarian
int nValue; // the n prefix denotes an integer
double width; // non-Hungarian
double dWidth; // the d prefix denotes a double
</div>
在原变量名前面添加小写字母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

匈牙利命名法Hungarian Notation相关推荐

  1. 【转】匈牙利命名法(Hungarian Notation)

    http://www.hudong.com/wiki/%E5%8C%88%E7%89%99%E5%88%A9%E5%91%BD%E5%90%8D%E6%B3%95 匈牙利命名法 匈牙利命名法是一种编程 ...

  2. 匈牙利命名法(Hungarian Notation)

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

  3. 匈牙利命名法(Hungarian)

    匈牙利命名法是电脑程式设计中的一种变量命名规则,此命名法又可细分为:系统匈牙利命名法和匈牙利应用命名法.原始的匈牙利命名法,现在被称为匈牙利应用命名法,由1972年至1981年在施乐帕洛阿尔托研究中心 ...

  4. 四种编程命名规则:驼峰命名法,帕斯卡命名法,匈牙利命名法,下划线命名法

    人们交流靠各种语言,每行都有每行的所谓的"行话".程序员也不例外,众所周知,程序员都是用代码进行交流的.那么除了在代码中的注释之外, 程序员如何读懂别人的程序呢? 当然,程序员之间 ...

  5. 骆驼命名法 ,匈牙利命名法 和 帕斯卡命名法

    常用命名法:骆驼命名法,匈牙利命名法和帕斯卡命名法 http://xp9802.iteye.com/blog/2111721 骆驼式命令法(Camel): 驼峰法 小驼峰法: 从第个单词开始首字母大写 ...

  6. 三种编程命名规则:驼峰命名法,帕斯卡命名法,匈牙利命名法

    文章目录 驼峰命令法(Camel) 匈牙利命名法(Hungarian) 帕斯卡(Pascal)命名法 命名的基本原则 变量名的命名规则 函数的命名规范 函数参数命名规范 三种流行的命名法则 目前,业界 ...

  7. [转]三种编程命名规则:驼峰命名法,帕斯卡命名法,匈牙利命名法

    三种流行的命名法则 目前,业界共有四种命名法则:驼峰命名法.匈牙利命名法.帕斯卡命名法和下划线命名法,其中前三种是较为流行的命名法. 驼峰命令法(Camel):  也称骆驼式命名法正如它的名称所表示的 ...

  8. 匈牙利命名法的衰落和建议

    首先要说明的是,此文只是一篇关于个人看法的随笔,不是paper.我也无意再次挑起这场旷日持久却已结束的争论. 1.不太久远的历史 匈牙利命名法(Hungarian Notation)最初雏形来自Cha ...

  9. 我眼中的匈牙利命名法

    上个月Linus通过Linux内核邮件列表一怒为注释,要求内核开发者"get rid of thebrain-damaged stupid networking comment syntax ...

最新文章

  1. 网络爬虫---json编码和解码
  2. Android Studio 在Ubuntu 下快捷键失效
  3. 解决IntelliJ无法导入maven包的问题
  4. mysql5.7只安装服务端_Windows Mysql5.7.11 服务端安装详解
  5. linux串口并行读取,请教linux串口问题!read读取时buf里只读取到8的倍数?
  6. 计算机网络流量图阅读与理解,计算机网络流量监控的设计与实现
  7. 专业App开发:设计App图标的三个关键点
  8. python网络爬虫学习笔记(十):数据存储
  9. ImageView的属性android:scaleType
  10. 一个教务系统多少钱_ERP系统多少钱
  11. 境外自助游服务平台澳乐网获戈壁千万级投资
  12. 百度云无限速下载工具:JDownloader 2 for Mac
  13. JS实现数据库连接并查询
  14. 虚拟主机怎么搭建网站
  15. 安迪的第一个字典(c++)
  16. 文件包含漏洞(原理及介绍)
  17. python爬虫公众号_python爬虫_微信公众号推送信息爬取的实例
  18. PTA 练习实验6 十道练习题
  19. 小白从0学习推荐系统 ---01 推荐系统简介
  20. 【WPS表格】数据透视表:修改行列字段顺序

热门文章

  1. 微信小程序web-view使用audio标签播放音频文件时无法自动播放的问题
  2. linux开放端口的两种方法
  3. Parsec+Gem5环境搭建与使用指南
  4. Java基础:数据类型的扩展
  5. 【数据库】SQL Server的使用教程
  6. adobe cs5 indesign 不显示文本框_Adobe CS5 InDesign自动添加页码
  7. 室内监控与室外监控有什么区别 如何选择合适的监控摄像机
  8. OpenGL入门示例8——图形平移、旋转、缩放
  9. 最新天龙八部环境-GS环境教程-【长期稳定版本】+ 视频教程
  10. 外国程序员整理的Java资料大全