匈牙利变量命名法之VB篇
常用变量命名规则

常用变量命名规则变量的命名方法【Hungarian】【camelCase】【PascalCase】一、匈牙利命名法【Hungarian】:广泛应用于象Microsoft Windows这样的环境中。
Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。
匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。
这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。
例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
匈牙利命名法中常用的小写字母的前缀:前缀类型a 数组(Array)b 布尔值(Boolean)by 字节(Byte)c 有符号字符(Char)cb 无符号字符(Char Byte,没有多少人用)cr 颜色参考值(ColorRef)cx,cy 坐标差(长度ShortInt)dw Double Wordfn 函数h Handle(句柄)i 整型l 长整型(Long Int)lp Long Pointerm_ 类的成员n 短整型(Short Int)np Near Pointerp Pointers 字符串型sz 以null做结尾的字符串型(String with Zero End)w Word二、骆驼命名法【camelCase】:骆驼式命令法,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。
例如,下面是分别用骆驼式命名法和下划线法命名的同一个函数:printEmployeePaychecks();print_employee_paychecks();第一个函数名使用了骆驼式命名法——函数名中的每一个逻辑断点都有一个大写字母来标记;第二个函数名使用了下划线法----函数名中的每一个逻辑断点都有一个下划线来标记。
匈牙利命名规则

宏、枚举值
宏、枚举值的命名
宏和枚举值由全大写字母组成,单词间通过 下划线来界定,如:ERROR_UNKNOWN, OP_STOP ....
前缀 类型
描述
实例
c char
8 位字符
cGrade
str string 字符型
strName
ch TCHAR
如果_UNICODE 定义,则为 16 位 chName
这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的,他出生在匈牙利。在 Microsoft 公司中和他一起工作的人被 教会使用这种约定。这对他们来说一切都很正常。但对那些 Simonyi 领导的项 目组之外的人来说却感到很奇特,他们认为这是死板的表达方式,甚至说带有这 样奇怪的外观是因为它是用匈牙利文写的。从此这种命名方式就被叫做匈牙利命 名法。
字符
b BOOL
布尔值
bEnable
n ,i int
整型(其大小依赖于操作系统)nLength
si short int 短整型
siSequ
n UINT
无符号值(其大小依赖于操作系 nHeight
统)
w WORD
16 位无符号值
wPos
f float 浮点型
fRadius
d double 双精度型
dArea
匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对 象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的 一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。
举例来说,表单的名称为 form,那么在匈牙利命名法中可以简写为 frm,则当表 单变量名称为 Switchboard 时,变量全称应该为 frmSwitchboard。这样可以很 容易从变量名看出 Switchboard 是一个表单,同样,如果此变量类型为标签,那 么就应命名成 lblSwitchboard。可以看出,匈牙利命名法非常便于记忆,而且 使变量名非常清晰易懂,这样,增强了代码的可读性,方便各程序员之间相互交 流代码。
驼峰命名法&匈牙利命名法

驼峰命名法(Camel-Case)驼峰命名法(Camel-Case)是电脑程序编写时的一套命名规则(惯例)。
程序员们为了自己的代码能更容易的在同行之间交流,所以才取统一的可读性比较好的命名方式。
例如:有些程序员喜欢全部小写,有些程序员喜欢用下划线,所以如果要写一个my name的变量,他们常用的写法会有myname、my_name、MyName或者myName。
这样的命名规则不适合所有程序员阅读,而利用驼峰命名法来表示,可以增加程序可读性。
驼峰命名法就是当变量名或函数名是由一个或多个单字连结在一起,而构成的唯一识别字时,第一个单字以小写字母开始,第二个单字的首字母大写;或每一个单字的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。
驼峰命名法(Camel-Case)一词来自Perl 语言中普遍使用的大小写混合格式,而Larry Wall 等人所著的畅销书《Programming Perl》(O'Reilly 出版)的封面图片正是一匹骆驼。
驼峰命名法的命名规则可视为一种惯例,并无绝对与强制,为的是增加识别和可读性。
匈牙利命名法匈牙利(Hungary)命名法是一种编程时的命名规范,又称为HN命名法。
原则匈牙利命名法是一种编程时的命名规范。
基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。
命名要基于容易记忆容易理解的原则。
保证名字的连贯性是非常重要的。
例子举例来说,表单的名称为form,那么在匈牙利命名法中可以简写为frm,则当表单变量名称为Switchboard时,变量全称应该为frmSwitchboard。
这样可以很容易从变量名看出Switchboard是一个表单,同样,如果此变量类型为标签,那么就应命名成lblSwitchboard。
可以看出,匈牙利命名法非常便于记忆,而且使变量名非常清晰易懂,这样,增强了代码的可读性,方便各程序员之间相互交流代码。
匈牙利表示法

1.匈牙利表示法在Windows程序设计中,为了提高程序代码的可读性,我们对程序中使用的变量或对象定义其标识符应遵从一定规则。
匈牙利表示法就是一种提供定义变量名的规则,它是一种定义变量名的好方法,Windows程序员经常使用这个方法。
匈牙利表示法是以Microsoft公司的程序员Chades Simortyhi的国家命名的,它在Microsoft公司编程人员中广泛用于应用程序和系统软件的开发中。
匈牙利表示法的基本方法是用一些小写字母作为变量名前缀,用来指示变量的数据类型,变量名的剩余部分将描述该变量的功能,例如:nCharacterCounter指示该变量是一个整数(n),表示一个字符计数器(Character Counter)。
表1.2列举了几种Windows函数和消息中用作变量和参数名的前缀。
表1.2 Windows变量的常用前缀┏━━━━━━━┳━━━━━━━━━━━━━━━━━━━━┓┃前缀┃变量意义┃┣━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫┃ b ┃布尔量(非O是TRUE,O是FALSE) ┃┣━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫┃ c ┃字符量(一个字节值) ┃┣━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫┃dw ┃32位无符号长型整数┃┣━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫┃ f ┃用16位整数表示的一种位标记┃┣━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫┃h ┃16位句柄┃┣━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫┃l ┃32位长整数、┃┣━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫┃lp ┃32位长指针┃┣━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫┃n ┃16位短整数┃┣━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫┃p ┃16位短指针┃┣━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫┃pt ┃坐标量(x,y),放在32位无符号整数中┃┣━━━━━━━╋━━━━━━━━━━━━━━━━━━━━┫┃rgb ┃RGB颜色值,放在32位整数中┃┗━━━━━━━┻━━━━━━━━━━━━━━━━━━━━┛by BYTE型变量sz 以NULL结束的字符型变量w WORDfn 函数型变量r 矩形变量RECT表1.3 Windows基本数据类型注2:事实上,WNDPROC被定义为LRESULT LPARAM),这个定义最终被编译器解释为long int,long)。
匈牙利表示法

几年以前,Charles Simonyi(他后来成为微软的著名程序员)设计了一种以前缀为基础的命名方法,这种方法后来称为"匈牙利表示法"以记念他.他的思想是根据每个标识符所代表的含义给它一个前缀.微软后来采用了这个思想,给每个标识符一个前缀以说明它的数据类型.因此,整型变量的前缀是n,长整型变量是nl,字符型数组变量是ca,以及字符串(以空类型结尾的字符数组)以sz为前缀.这些名字可能会非常古怪.比如说:lpszFoo表示"Foo"是一个指向以空字符为结尾的字符串的长整型指针.这种方法的优点是使人能够通过变量的名字来辨别变量的类型,而不比去查找它的定义.遗憾的是,这种方法不仅使变量名字非常绕口,而且使改变变量类型的工作变得十分艰巨.在Windows3.1中,整型变量为16为宽.如果我们在开始时采用了一个整型变量,但是在通过30---40个函数的计算之后,发现采用整型变量宽度不够,这时我们不仅要改变这个变量的类型,而且要改变这个变量在这30--40个函数中的名字.因为不切实际,除了一些顽固的Windows程序员外已经没有人再使用"匈牙利表示法"了.毫无疑问,在某种场合它依然存在,但大部分人现在已经抛弃它了.一般而言,输入前缀是一种糟糕的想法,因为它把变量于其类型紧紧地绑在了一起.对于30行以下的函数,匈牙利方法一般有优势。
尤其是对界面编程,有优势。
但对于有强烈的算法要求、尤其是有很多抽象类型的C++程序,匈牙利方法简直是一个灾难。
看你用在什么地方。
现在有了很好的IDE工具,如:VC,SourceInsight等.选中变量,会自动提示告诉你它的声明和定义,这样匈牙利命名法就没有很大的必要了.无非就是为了程序可读性较好.实际上良好的代码书写习惯比强制使用匈牙利命名法更重要.系统性。
整体性。
可读性。
分类要清楚。
要有注释!匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。
编程常见的三种命名法:骆驼命名法,帕斯卡命名法和匈牙利命名法

编程常见的三种命名法:骆驼命名法,帕斯卡命名法和匈⽛利命名法------------恢复内容开始------------⼀、匈⽛利命名法:⼴泛应⽤于象Microsoft Windows这样的环境中。
Windows 编程中⽤到的变量(还包括宏)的命名规则匈⽛利命名法,这种命名技术是由⼀位能⼲的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。
匈⽛利命名法通过在变量名前⾯加上相应的⼩写字母的符号标识作为前缀,标识出变量的作⽤域,类型等。
这些符号可以多个同时使⽤,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。
例如:m_lpszStr, 表⽰指向⼀个以0字符结尾的字符串的长指针成员变量。
匈⽛利命名法关键是:标识符的名字以⼀个或者多个⼩写字母开头作为前缀;前缀之后的是⾸字母⼤写的⼀个单词或多个单词组合,该单词要指明变量的⽤途。
匈⽛利命名法中常⽤的⼩写字母的前缀:前 缀类 型a 数组 (Array)b 布尔值 (Boolean)by 字节 (Byte)c 有符号字符 (Char)cb ⽆符号字符 (Char Byte,没有多少⼈⽤)cr 颜⾊参考值 (ColorRef)cx,cy 坐标差(长度 ShortInt)dw Double Wordfn 函数h Handle(句柄)i 整型l 长整型 (Long Int)lp Long Pointerm_ 类的成员n 短整型 (Short Int)np Near Pointerp Pointers 字符串型sz 以null做结尾的字符串型 (String with Zero End)w Word⼆、骆驼命名法: 骆驼式命令法,正如它的名称所表⽰的那样,是指混合使⽤⼤⼩写字母来构成变量和函数的名字。
例如,下⾯是分别⽤骆驼式命名法和下划线法命名的同⼀个函数: printEmployeePaychecks(); print_employee_paychecks(); 第⼀个函数名使⽤了骆驼式命名法——函数名中的每⼀个逻辑断点都有⼀个⼤写字母来标记;第⼆个函数名使⽤了下划线法----函数名中的每⼀个逻辑断点都有⼀个下划线来标记。
四种常用的命名规则帕斯卡命名法驼峰命名法匈牙利命名法下划线命名法
四种常用的命名规则帕斯卡命名法驼峰命名法匈牙利命名法下划线命名法下面介绍常用的四种命名法则:帕斯卡命名法、驼峰命名法、匈牙利命名法、下划线命名法其中前三种用的比较多。
1,帕斯卡命名法(Pascal)程序代码示例:ShowMessage(; string PassWord;帕斯卡命名法(Pascal)的规则,命名中的每一个逻辑断点(单词)都用大写字母标记。
2,驼峰命名法(Camel)程序代码示例://驼峰命名法分为:小驼峰式和大驼峰式 // 小驼峰示例 userName; camelCas e; // 大驼峰示例 UserName; CamelCase;驼峰命名法近几年使用的比较多,在一些主流的开源项目中使用频率很高,比较流行。
3,匈牙利命名法(Hungarian)程序代码示例:g_cch; //g_ 是属性描述,表示全局变量,c 和 ch 分别是计数类型和字符类型,一起表示变量类型,这里忽略了对象描述,所以它表示一个对字符进行计数的全局变量。
hwnd ; // h 是类型描述,表示句柄, wnd 是变量对象描述,表示窗口,所以hwnd 表示窗口句柄匈牙利命名法基本原则:变量名=属性+类型+对象描述属性+类型+描述属性一般是小写字母+_: g_:全局变量 m_:类成员变量 s_:静态变量 c_:常量类型就多了: b:bool sz:以零结束的字符串 p:指针 n:整整 dw:双字 l:长整型无符号:u 函数:fnHN命名法目前使用的频率并不多,但是在 Windows上用C/C++写程序,还是习惯会用HN命名法。
4,下划线命名法(UnderScoreCase)程序代码示例:show_message(; string user_name;下划线命名法(UnderScoreCase)与帕斯卡(Pascal)及驼峰命名法(Camel)区别就是逻辑断点(单词)用的是下划线隔开,还是比较容易区分的,下划线命名法(UnderScoreCase)是在C语言出现之后开始流行,在许多老程序如UNIX这样的环境中,它的使用频率还是很高的。
C++之匈牙利命名法
w
WORD
16位无符号值
wPos
f
float
浮点型
fRadius
d
double
双精度型
dArea
l
LONG
长整型
lOffset
ld
long double
长双精度型
ldRate
dw
DWORD
32位无符号整型
dwRange
p
*
指针
pDoc
lp
FAR*
远指针
lpszName
lpsz
LPSTR
HBRUSH
hBrush;
CBrush*
pBrush;
HFONT
hFont;
CFont*
pFont;
HBITMAP
hBitmap;
CBitmap*
pBitmap;
HPALETTE
hPaltte;
CPalette*
pPalette;
HRGN
hRgn;
CRgn*
pRgn;
HMENU
hMenu;
CMenu*
pScrollBar;
HSZ
hszStr;
CString
pStr;
POINT
pt;
CPoint
pt;
SIZE
size;
CSize
size;
RECT
rect;
CRect
rect;
一般前缀命名规范
前缀
类型
实例
C
类或结构
CDocument,CPrintInfo
S
结构体
SAddress
m_
匈牙利标记法
匈牙利标记法匈牙利标记法是编程中变量的一种命名习惯。
[Prefix]-BaseTag-Name其中[Prefix]是可选的,BaseTag是数据类型的缩写,Name是变量名字,说明变量的作用[Prefix]包括:p-指针rg-集合c-计数器h-句柄BaseTag主要有:v-void i-int f-BOOL ui-UINTb-BYTE ch-CHAR wch-WCHAR ul-ULONGl-LONG dw-DWORD hr-HRESULT fn-funtionsz-NULL str w-USHORT,SHORT,WORD针对OO,成员变量用m_开头,全局变量用g_开头example:BOOL m_fInitializedBYTE *pbBuffer变量命名命名必须具有一定的实际意义,形式为xAbcFgh,x由变量类型确定,Abc、Fgh表示连续意义字符串,如果连续意义字符串仅两个,可都大写.如OK.具体例程:BOOL类型bEnable;ch * char chTextc * 类对象cMain(对象实例)h * Handle(句柄)hWndi * intn * 无符号整型p * 指针sz,str * 字符串//sz 0结尾字符串w WORDx,y 坐标Char或者TCHAR类型与Windows API有直接联系的用szAppName[10]形式否则用FileName[10]形式,单个字符也可用小写字母表示;Int类型nCmdShow;LONG类型lParam;UINT类型uNotify;DWORD类型dwStart;PSTR类型pszTip;LPSTR类型lpCmdLineLPTSTR类型lpszClassName;LPVOID类型lpReservedWPARAM类型wParam,LPARAM类型lParamHWND类型hDlg;HDC类型hDC;HINSTANCE类型hInstanceHANDLE类型hInstance,HICON类型hIcon;int iTmpfloat fTmpDWORD dw*String , AnsiString str *m_ 类成员变量m_nVal, m_bFlagg_ 全局变量g_nMsg, g_bFlag局部变量中可采用如下几个通用变量:nTemp,nResult,I,J(一般用于循环变量)。
最新C++之匈牙利命名法
C++之匈牙利命名法
在编程时,变量、函数的命名是一个极其重要的问题。
好的命名方法使变量易于记忆且程序可读性大大提高。
Microsoft采用匈牙利命名法来命名Windows API函数和变量。
匈牙利命名法是由Microsoft的著名开发人员、Excel的主要设计者查尔斯·西蒙尼在他的博士论文中提出来
我们先看一下我们低海拔的平原到底有多少。
图中国真正的平原地区
我们会发现中国几千年扩张的这么大的地盘,其实平原相比少的可怜,在没有获得四川盆地和东北平原的时代,我们所熟知的夏商西周春秋战国,其实主要的活动区域仅仅是上面的黄色区域(华北平原)和红色区域(渭河谷地)以及长江边缘的小型平原。
其实大家也发现了,上图中往往有河流的地方,才有所谓平原。
其实绝大部分的平原,都是一种叫做“冲积平原”的东西,也就是说河流携带大量泥沙,然后沉积在地表,形成平坦肥沃的土地。
所以我们可以看到,我们最大最古老的华北平原,其实就是黄河冲积形成的肥沃土地。
华北平原。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
匈牙利变量命名法之VB篇
vb
参看《VB 编程标准》
第四章 命名约定
4.1 变量命名约定
所有变量的定义应该遵循匈牙利命名法,使用3个字母前缀来表示数据类型或控件类型,3个字母前
缀必须小写,前缀后面是由表意性强的一个单词或多个单词组成的名字,而且每个单词的首写字母大写,
其它字母小写,这样保证其他人阅读时对变量名能够进行正确的断句。
按照这种方式命名变量,在一个变量名就可以反映出变量类型和变量所存储的值的意义两方面内容,
这使得程序中出现变量名的代码可读性强、更加容易理解。
常见的变量类型和控件类型前缀如下表所示:
变量类型前缀列表:
数据类型 前缀 示例
Boolean Bln BlnLoggedIn
Currency Cur curSalary
Control Ctl ctlLastControl
Double dbl dblMiles
ErrObject err errLastError
Single sng sngYears
Handle hwd hwdPicture
Long lng lngOnHand
Object obj objUserTable
Integer int intAge
String str strName
User-defined type udt udtEmployee
Variant vnt vntDateHired
(空白)
控件类型前缀列表:
控件 前缀 举例
Check Chk chkPrint
Combo Cbo cboTitle
Command Cmd cmdCancel
Data Dat datBiblio
Directory list box Dir dirSource
Drive list box Drv drvTarget
File list box Fil filSource
Frame Fra fraLanguage
Form Frm frmMain
Group push button Gpb gpbChannel
Horizontal scroll bar Hsb hsbVolume
Image Img imgIcon
Label Lbl lblHelpMessage
Line Lin linVertical
List box Lst lstResultCodes
MDI child form mdi mdiContact
Menu mnu mnuFileOpen
OLE container ole olePhoto
Option button opt optSpanish
Panel pnl pnlSettings
Picture box pic PicDiskSpace
Picture clip clp ClpToolbar
Shape shp ShpCircle
Text box txt TxtAddress
Timer tmr TmrAlarm
Vertical scroll bar Vsb VsbRate
当用户定义UDT(即用户自定义结构,Type结构)时,它应加上前缀“Type”,当定义枚举结构时,
应加前缀“Enum”,以示与其它类型的区别。
例如:
Type TypeStudents
Name as string
Age as long
End Type
Enum EnumRoles
flDoctor
flNurse
End Enum
注:fl为公司内部枚举元素的规定前缀。
开发人员如果遇到上述表格中未列举的类型,请书面通知开发部管理人员,由管理人员集中更新此列
表内容,不得擅自启用未经确定的新变量前缀或控件前缀。