三种命名规则之-----匈牙利命名规则

三种命名规则之-----匈牙利命名规则

匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。

匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。

前缀类型描述
aArray数组
bBOOL (int)
byUnsigned Char (Byte)无符号字(字节)
cChar字符(字节)
cbCount of bytes字节数
crColor reference value颜色(参考)值
cxCount of x (Short)x的集合(短整数)
dwDWORD(unsigned long)双字(无符号长整数)
fFlags (usually multiple bit values)标志(一般是有多位的数值)
fnFunction函数
g_global全局的
hHandle句柄
iInteger整数
lLong长整数
lpLong pointer长指针
m_Data member of a class一个类的数据成员
nShort int短整数
pPointer指针
sString字符串
szZero terminated String以0结尾的字符串
tmText metric文本规则
uUnsigned int无符号整数
ulUnsigned long (ULONG)无符号长整数
wWORD (unsigned short)无符号短整数
x,yx, y coordinates (short)坐标值/短整数
vvoid

有关项目的全局变量用g_开始,类成员变量用m_,局部变量若函数较大则可考虑用l_用以显示说明其是局部变量。

前缀类型例子
g_全局变量g_Servers
C类或者结构体CDocument,CPrintInfo
m_成员变量m_pDoc,m_nCustomers

|VC常用前缀列表:

前缀类型描述例子
chchar8位字符chGrade
chTCHAR16位UNICODE类型字符chName
bBOOL布尔变量bEnabled
nint整型(其大小由操作系统决定)nLength
nUINT无符号整型(其大小由操作系统决定)nLength
wWORD16位无符号整型wPos
lLONG32位有符号整型lOffset
dwDWORD32位无符号整型dwRange
p*Ambient memory model pointer 内存模块指针,指针变量pDoc
lpFAR*长指针lpDoc
lpszLPSTR32位字符串指针lpszName
lpszLPCSTR2位常量字符串指针lpszName
lpszLPCTSTR32位UNICODE类型常量指针lpszName
hhandleWindows对象句柄hWnd
lpfn(*fn)()回调函数指针 Callback Far pointer to CALLBACK functionlpfnAbort

可是在不论什么情况下,都硬性规定使用匈牙利命名法是迂腐的。尤其是 Unix 编程,在使用没有变量名、keyword自己主动补齐功能的编辑器,如 vi 下,去敲入大写和小写混合的变量名是痛苦的。事实上仅仅要注意两个原则:1) 含义清晰,不易混淆; 2) 不和其他模块、系统API的命名空间相冲突就可以。
1.有意识的为变量名、宏名加上本模块的keyword,就不至于和其他模块、系统API的命名空间相冲突;比如: 宏的名称过短,如:DEBUG; 或_DEBUG,非常可能和别的模块,系统模块相冲突;
2.局部变量尤其是循环变量外,使用约定俗成的 i,j,k ,没有问题;
3.宏、常量、枚举enum,所实用大写字母;
4.全局变量加上前缀 “g”,后面跟上首字母大写的单词;

  • 16
    点赞
  • 79
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gxhlh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值