我是靠谱客的博主 甜美小丸子,最近开发中收集的这篇文章主要介绍C++之匈牙利命名法C++之匈牙利命名法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

C++之匈牙利命名法

匈牙利命名法(Hungarian notation)是电脑程序设计中的一种变量命名规则,此命名法又可细分为:
    系统匈牙利命名法
    匈牙利应用命名法
  
  匈牙利命名法具备语言独立的特性,并且首次在BCPL语言中被大量使用。由于BCPL只有机器字这一种数据类型,因此这种语言本身无法帮助程序员来记住变量的类型。匈牙利命名法通过明确每个变量的数据类型来解决这个问题。
  在匈牙利命名法中,一个变量名由一个或多个小写字母开始,这些字母有助于记忆变量的类型和用途,紧跟着的就是程序设计师选择的任何名称。这个后半部分的首字母可以大写,以区别前面的类型指示字母(参见驼峰式大小写)。

历史

原始的匈牙利命名法,现在被称为匈牙利应用命名法,由1972年至1981年在施乐帕洛阿尔托研究中心工作的-程序员查尔斯·西蒙尼发明。此人后来成了微软的总设计师。
  这种命名法其实是对于西蒙尼祖籍的一种讽刺。匈牙利人名和大多数其他欧洲人名相比是反过来的,即姓氏在名字的前面。举个例子,英语化的名字“Charles Simonyi”在匈牙利语中原本是“Simonyi Károly”。同样的,在匈牙利命名法中,类型名在实际变量名前,而不是像大多数欧洲的Smalltalk那样,类型放在变量名后,例如aPoint和lastPoint。后者在西蒙尼任职于施乐帕洛阿尔托研究中心时期非常流行。这种命名法的灵感,可能是受波兰表示法的启发。
  匈牙利命名法的英文是Hungarian notation,这个词能让许多人记住,因为难发音的辅音字符串有点像部分东欧语言中,辅音丰富的拼写方式,尽管实际上匈牙利语是属于芬兰-乌戈尔语族,而不像斯拉夫语族那样元音丰富。举例来说,零结束字符串的前缀"sz"实际上就是匈牙利字母表中的一个合体字母(参看德语中的ß)。

示例

bBusy:布尔型
cApples:项目计数
dwLightYears:双字(系统)
fBusy:布尔型或浮点型
nSize:整型(系统)或计数(应用)
iSize:整型(系统)或索引(应用)
fpPrice:浮点数
dbPi:双精度浮点数(系统)
pFoo:指针
rgStudents:数组或范围
szLastName:零结束字符串
u32Identifier:无符号32位整型(系统)
stTime:时钟结构
fnFunction:函数名
对于指针和数组来说,它们实际上并不是数据类型,因此通常在助记符后面跟着实际元素的类型。
pszOwner:指向零结束字符串的指针
rgfpBalances:浮点值的数组
尽管匈牙利命名法可以被应用在任何程序设计语言和环境中,由于微软在C语言项目中,
特别是在Microsoft Windows里的大量应用,使得匈牙利命名法的应用大量存在于和Windows相关的领域:
hwndFoo:窗口句柄
lpszBar:指向零结束字符串的长指针
这种命名法又是在C++中被扩展而包含变量的作用域,由一个下划线隔开:
g_nWheels:全局名字空间的成员,整型
m_nWheels:结构体/类成员,整型

最后

以上就是甜美小丸子为你收集整理的C++之匈牙利命名法C++之匈牙利命名法的全部内容,希望文章能够帮你解决C++之匈牙利命名法C++之匈牙利命名法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(60)

评论列表共有 0 条评论

立即
投稿
返回
顶部