常用【变量命名法则】总结

常用【变量命名法则】总结

ID:12914473

大小:50.00 KB

页数:3页

时间:2018-07-19

常用【变量命名法则】总结_第1页
常用【变量命名法则】总结_第2页
常用【变量命名法则】总结_第3页
资源描述:

《常用【变量命名法则】总结》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、常用【变量命名法则】总结1、匈牙利命名法计算机程序设计中的一种命名规则,用这种方法命名的变量显示了其数据类型。匈牙利命名法有两种:系统匈牙利命名法和匈牙利应用命名法。匈牙利命名法被设计成语言独立的,并且首次在BCPL语言中被大量使用。由于BCPL只有机器字这一种数据类型,因此这种语言本身无法帮助程序员来记住变量的类型。匈牙利命名法通过明确每个变量的数据类型来解决这个问题。在匈牙利命名法中,一个变量名由一个或多个小写字母开始,这些字母有助于记忆变量的类型和用处,紧跟着的就是程序员选择的任何名称。这个后半部分的首字母可以大写以区别前面的类型指示字母(参见駝峰式大小寫)。系统命名法与应用命名法的

2、区别在于前缀的目的。在系统匈牙利命名法中,前缀代表了变量的实际数据类型。例如:lAccountNum :变量是一个长整型("l");arru8NumberList :变量是一个无符号8位整型数组("arru8");szName :变量是一个零结束字符串("sz"),这是西蒙尼最开始建议的前缀之一。匈牙利应用命名法不表示实际数据类型,而是给出了变量目的的提示,或者说它代表了什么。rwPosition :变量代表一个行("rw")。usName :变量代表一个非安全字符串("us"),需要在使用前处理。strName :变量代表一个包含名字的字符串("str")但是没有指明这个字符串是如何实现

3、的。西蒙尼建议的大多数前缀都是自然语义的,但不是所有。下面几个是来自原始论文的:pX是指向另一个X类型的指针,这包含非常少的语义信息。d是一个前缀表示两个值的区别,例如,dY可能代表一个图形沿Y轴的距离,而一个仅仅叫做y的变量可能是一个绝对坐标。这完全是自然语义的。sz是一个无结束或零结束的字符串。在C中,这包含一些语义信息,因为它不是很明确一个char*类型的变量是一个指向单个字符的指针,还是一个字符数组,亦或是一个零结束字符串。w标记一个变量是一个字。这基本上没有包含什么语义信息,因此大概会被当成是系统命名法。b标记了一个字节,和w对比可能有一些语义信息,因为C语言中,只有字节大小的数

4、据是char型的,因此这些有时候被用来保存数值。这个前缀也许可以明确某个变量保存的是应该被看作是字母(或更一般的字符)的数值还是一个数字。由于这种命名法通常使用小写字母开头用来助记,但是并没有对助记符本身作规定。有几种被广泛使用的习惯(见下面的示例),但是任意字母组合都可以被使用,只要它们在代码主体中保持一致就可以了。在使用匈牙利系统命名法的代码中有时候也可能包含系统匈牙利命名法,即在描述被单独以类型方式定义的变量时使用。示例bBusy :布尔型cApples :项目计数dwLightYears :双字(系统)fBusy :布尔型(标记)nSize :整型(系统)或计数(应用程序)iSiz

5、e :整型(系统)或索引(应用程序)fpPrice:浮点数dbPi :双精度浮点数(系统)pFoo :指针rgStudents :数组或范围szLastName :零结束字符串u32Identifier :无符号32位整型(系统)stTime :时钟结构fnFunction :函数名对于指针和数组来说,它们实际上并不是数据类型,因此通常在助记符后面跟着实际元素的类型。pszOwner :指向零结束字符串的指针rgfpBalances :浮点值的数组由于匈牙利命名法可以被应用在任何程序设计语言和环境中,因此被微软广泛用在C语言中,特别是在MicrosoftWindows里。由此一来,许多常见

6、的匈牙利命名法的结构都和Windows紧密相关:hwndFoo :窗口句柄lpszBar :指向零结束字符串的长指针这种命名法又是在C++中被扩展而包含变量的作用域,由一个下划线隔开:g_nWheels :全局命名空间的成员,整型m_nWheels :结构体/类成员,整型2、系统匈牙利命名法的优点(其中一些只适用于系统匈牙利命名法)支持者声称匈牙利命名法的好处包括:[1]1)从名字中就可以看出变量的类型2)拥有类似语义的多个变量可以在一个代码块中使用:dwWidth,iWidth,fWidth,dWidth3)变量名在仅仅知道他们的类型时可以被轻易记住4)可以使变量名更加一致5)决定一个变

7、量名的时候可以更机械化,更快6)不合适的类型转换和操作可以在阅读代码的时候被检测出来7)在那些数字被当作字符串处理的基于字符串的语言中非常有用(例如Tcl)8)在匈牙利应用命名法中,变量名确保不会犯以下错误:heightWindow=window.getWidth()9)在使用动态类型语言或完全无类型的语言编程时,关于类型的修饰可以更简化。这种语言一般不包含类型修饰(或者可选),因此唯一可以看出哪些类型是被允许的只有名字

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。