- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
匈牙利命名规范.doc 收藏
几年以前,Charles Simonyi(他后来成为微软的著名程序员)设计了一种以前缀 为基础的命名方法,这种方法后来称为匈牙利表示法以记念他.他的思想是根 据每个标识符所代表的含义给它一个前缀.微软后来采用了这个思想,给每个标 识符一个前缀以说明它的数据类型.因此,整型变量的前缀是 n,长整型变量是 nl,字 符型数组变量是 ca,以及字符串(以空类型结尾的字符数组)以 sz 为前缀.这些 名字可能会非常古怪.比如说:lpszFoo 表示Foo是一个指向以空字符为结尾的 字符串的长整型指针.
这种方法的优点是使人能够通过变量的名字来辨别变量的类型,而不比去查找它 的定义.遗憾的是,这种方法不仅使变量名字非常绕口,而且使改变变量类型的工 作变得十分艰巨.在 Windows3.1 中,整型变量为 16 为宽.如果我们在开始时采用 了一个整型变量,但是在通过 30---40 个函数的计算之后,发现采用整型变量宽 度不够,这时我们不仅要改变这个变量的类型,而且要改变这个变量在这 30--40 个函数中的名字.
因为不切实际,除了一些顽固的 Windows 程序员外已经没有人再使用匈牙利表 示法了.毫无疑问,在某种场合它依然存在,但大部分人现在已经抛弃它了.一般 而言,输入前缀是一种糟糕的想法,因为它把变量于其类型紧紧地绑在了一起. 对于 30 行以下的函数,匈牙利方法一般有优势。
尤其是对界面编程,有优势。
但对于有强烈的算法要求、尤其是有很多抽象类型的 C++程序,匈牙利方法简 直是一个灾难。
看你用在什么地方。
现在有了很好的 IDE 工具,如:VC,SourceInsight 等.
选中变量,会自动提示告诉你它的声明和定义,这样
匈牙利命名法就没有很大的必要了.
无非就是为了程序可读性较好.
实际上良好的代码书写习惯比强制使用匈牙利命名法更重要.
系统性。整体性。可读性。分类要清楚。要有注释!
匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种 类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入 前缀以增进人们对程序的理解。它是由微软内部的一个匈牙利人发起使用的, 结果它在微软内部逐渐流行起来,并且推广给了全世界的 Windows 开发人员。 下面将介绍匈牙利命名法,后面的例子里也会尽量遵守它和上面的代码风格。 还是那句话,并不是要求所有的读者都要去遵守,但是希望读者作为一个现代 的软件开发人员都去遵守它。
Array
BOOL (int)
数组
布尔(整数)
by Unsigned Char (Byte)
c Char
cb Count of bytes
cr Color reference value
无符号字符(字节) 字符(字节) 字节数
颜色(参考)值
cx Count of x (Short) x 的集合(短整数)
dw DWORD (unsigned long)
双字(无符号长整数)
f Flags (usually multiple bit values) 标志(一般是有多位的 数值)
fn Function
_ global
Handle
Integer
l Long
lp Long pointer
m_ Data member of a class n Short int
p Pointer
s String
Zero terminated String
Text metric
u Unsigned int
ul Unsigned long (ULONG)
w WORD (unsigned short) x,y x, y coordinates (short) v void
函数
全局的
句柄
整数
长整数
长指针
一个类的数据成员 短整数
指针
字符串
以 0 结尾的字符串 文本规则
无符号整数 无符号长整数 无符号短整数 坐标值/短整数 空
有关项目的全局变量用 g_开始,类成员变量用 m_,局部变量若函数较大则可考 虑用 l_用以显示说明其是局部变量。
前缀
类型
例子
g_
C
全局变量 g_Servers
类或者结构体 CDocument,CPrintInfo
m_ 成员变量 m_pDoc,m_nCustomers VC 常用前缀列表:
前缀
类型
描述
例子
ch char 8 位字符 chGrade
ch TCHAR 16 位 UNICODE 类型字符 chName
b BOOL
n int
n UINT
布尔变量 bEnabled
整型(其大小由操作系统决定) nLength
无符号整型(其大小由操作系统决定) nLength
w WORD 16 位无符号整型 wPos
l LONG 3
原创力文档


文档评论(0)