C++之匈牙利命名法
匈牙利变量命名规则
匈牙利变量命名规则
摘要:
1.匈牙利命名法的起源和特点
2.匈牙利命名法的基本规则
3.匈牙利命名法的应用领域
4.匈牙利命名法的优缺点
正文:
1.匈牙利命名法的起源和特点
匈牙利命名法(Hungarian Notation)是一种用于变量命名的规范,起源于20 世纪50 年代的匈牙利计算机科学家。
这种命名法的主要特点是:使用小写字母和短横线来表示变量的类型和作用域,使得程序员在看到变量名就能大致了解变量的含义和用途。
2.匈牙利命名法的基本规则
匈牙利命名法包括以下基本规则:
- 变量名以小写字母开头,如果需要表示数字,则使用0-9 表示;
- 变量名中可以包含一个或多个短横线(-),用于表示变量的类型或作用域;
- 变量名中不能包含空格,且除开头字母外,其他字母都应小写。
3.匈牙利命名法的应用领域
匈牙利命名法广泛应用于计算机编程领域,尤其在微软的Visual Studio 编程工具中使用较为广泛。
此外,许多其他编程语言和代码编辑器也支持或推
荐使用匈牙利命名法。
4.匈牙利命名法的优缺点
匈牙利命名法的优点包括:
- 有助于提高代码的可读性,使程序员更容易理解变量的含义和用途;
- 有助于减少编译器或解释器的错误,因为变量名中包含了类型信息;
- 可以提高编程效率,因为可以使用简短的变量名。
然而,匈牙利命名法也存在一些缺点,例如:
- 变量名较长,可能导致输入困难或容易出错;
- 可能使代码看起来过于复杂,增加新程序员的学习成本。
总之,匈牙利命名法是一种有助于提高代码可读性和可维护性的编程规范。
C之匈牙利命名法
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_
成员变量
m_pDoc,m_nCustomers
匈牙利命名法为C标识符的命名定义了一种非常标准化的方式,这种命名方式是以两条规则为基础:
1.标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类型。
匈牙利命名规则
宏、枚举值
宏、枚举值的命名
宏和枚举值由全大写字母组成,单词间通过 下划线来界定,如: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。可以看出,匈牙利命名法非常便于记忆,而且 使变量名非常清晰易懂,这样,增强了代码的可读性,方便各程序员之间相互交 流代码。
c语言函数命名规范
竭诚为您提供优质文档/双击可除c语言函数命名规范篇一:c语言命名规则匈牙利命名法是微软推广的一种关于变量、函数、对象、前缀、宏定义等各种类型的符号的命名规范。
匈牙利命名法的主要思想是:在变量和函数名中加入前缀以增进人们对程序的理解。
它是由微软内部的一个匈牙利人发起使用的,结果它在微软内部逐渐流行起来,并且推广给了全世界的windows开发人员。
下面将介绍匈牙利命名法,后面的例子里也会尽量遵守它和上面的代码风格。
aarray数组bbool(int)布尔(整数)byunsignedchar(byte)无符号字符(字节)cchar字符(字节)cbcountofbytes字节数crcolorreferencevalue颜色(参考)值cxcountofx(short)x的集合(短整数)dwdwoRd(unsignedlong)双字(无符号长整数)fFlags(usuallymultiplebitvalues)标志(一般是有多位的数值)fnFunction函数g_global全局的hhandle句柄iintegerllonglplongpointerm_datamemberofaclass成员nshortintppointersstringszzeroterminatedstring符串tmtextmetricuunsignedintulunsignedlong(ulong)整数长整数长指针一个类的数据短整数指针字符串以0结尾的字文本规则无符号整数无符号长整数wwoRd(unsignedshort)无符号短整数x,yx,ycoordinates(short)坐标值/短整数vvoid空有关项目的全局变量用g_开始,类成员变量用m_,局部变量若函数较大则可考虑用l_用以显示说明其是局部变量。
前缀类型例子g_全局变量g_serversc类或者结构体cdocument,cprintinfom_成员变量m_pdoc,m_ncustomersVc常用前缀列表:前缀类型描述例子chchar8位字符chgradechtchaR16位unicode类型字符chnamebbool布尔变量benablednint整型(其大小由操作系统决定)nlengthnuint无符号整型(其大小由操作系统决定)nlength wwoRd16位无符号整型wposllong32位有符号整型loffsetdwdwoRd32位无符号整型dwRangep*ambientmemorymodelpointer内存模块指针,指针变量pdoclpFaR*长指针lpdoclpszlpstR32位字符串指针lpsznamelpszlpcstR32位常量字符串指针lpsznamelpszlpctstR32位unicode类型常量指针lpszname hhandlewindows对象句柄hwndlpfn(*fn)()回调函数指针callbackFarpointertocallbackfunctionlpfnabort windows对象名称缩写:windows对象例子变量mFc类例子对象hwndhwnd;cwnd*pwnd;hdlghdlg;cdialog*pdlg;hdchdc;cdc*pdc;hgdiobjhgdiobj;cgdiobject*pgdiobj;hpenhpen;cpen*ppen;hbRushhbrush;cbrush*pbrush;hFonthFont;cFont*pFont;hbitmaphbitmap;cbitmap*pbitmap;hpalettehpalette;cpalette*ppalette;hRgnhRgn;cRgn*pRgn;hmenuhmenu;cmenu*pmenu;hwndhctl;cstatic*pstatic;hwndhctl;cbutton*pbtn;hwndhctl;cedit*pedit;hwndhctl;clistbox*plistbox;hwndhctl;ccombobox*pcombobox;Vc常用宏定义命名列表:前缀符号类型符号例子范围篇二:c语言变量命名规则1、严格采用阶梯层次组织程序代码:各层次缩进的分格采用Vc的缺省风格,即每层次缩进为4格,括号位于下一行。
C语言常见命名规范
C 语言常见命名规范
1 常见命名规则
比较着名的命名规则首推匈牙利命名法,
这种命名方法是由Microsoft 程序员查尔斯-西蒙尼(Charles Simonyi) 提出的。
其主要思想是在变量和函数名中加入前缀以增进人们对程序的理解。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;
前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量
的用途。
例如:lpszStr, 表示指向一个以’\0’结尾的字符串(sz)的长指针(lp)变量。
骆驼(Camel)命名法近年来越来越流行,
在许多新的函数库和Java 这样的平台下使用得当相多。
骆驼命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来。
vc++匈牙利命名法
匈牙利命名法是一种编程时的命名规范。
基本原则是:变量名=属性+类型+对象描述。
其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。
命名要基于容易记忆容易理解的原则。
目前在Windows程序开发和MFC程序开发中常用的命名规则是匈牙利命名法。
下面就是HN命名法的一般规则。
属性部分全局变量g_const常量c_c++类成员变量m_静态变量s_类型部分指针p函数fn无效v句柄h长整型l布尔b浮点型(有时也指文件) f双字dw字符串sz短整型n双精度浮点d计数c(通常用cnt)字符ch(通常用c)整型i(通常用n)字节by字w实型r无符号u描述部分最大Max最小Min初始化Init临时变量T(或Temp)源对象Src目的对象Dest这里顺便写几个例子:(1) hwnd :h 是类型描述,表示句柄,wnd 是变量对象描述,表示窗口,所以hwnd 表示窗口句柄;(2) pfnEatApple :pfn 是类型描述,表示指向函数的指针,EatApple 是变量对象描述,所以它表示指向EatApple 函数的函数指针变量。
(3) g_cch :g_ 是属性描述,表示全局变量,c 和ch 分别是计数类型和字符类型,一起表示变量类型,这里忽略了对象描述,所以它表示一个对字符进行计数的全局变量。
小结:匈牙利命名法MFC、句柄、控件及结构的命名规范Windows类型样本变量MFC类样本变量HWND hWnd;CWnd* pWnd;HDLG hDlg;CDialog* pDlg;HDC hDC;CDC* pDC;HGDIOBJ hGdiObj;CGdiObject* pGdiObj;HPEN hPen;CPen* pPen;HBRUSH hBrush;CBrush* pBrush;HFONT hFont;CFont* pFont;HBITMAP hBitmap;CBitmap* pBitmap;HPALETTE hPaltte;CPalette* pPalette;HRGN hRgn;CRgn* pRgn;HMENU hMenu;CMenu* pMenu;HWND hCtl;CState* pState;HWND hCtl;CButton* pButton;HWND hCtl;CEdit* pEdit;HWND hCtl;CListBox* pListBox;HWND hCtl;CComboBox* pComboBox;HWND hCtl;CScrollBar* pScrollBar;HSZ hszStr;CString pStr;POINT pt;CPoint pt;SIZE size;CSize size;RECT rect;CRect rect;一般前缀命名规范前缀类型实例C 类或结构CDocument,CPrintInfom_ 成员变量m_pDoc,m_nCustomers变量命名规范前缀类型描述实例ch char 8位字符chGradech TCHAR 如果_UNICODE定义,则为16位字符chNameb BOOL 布尔值bEnablen int 整型(其大小依赖于操作系统)nLengthn UINT 无符号值(其大小依赖于操作系统)nHeightw WORD 16位无符号值wPosl LONG 32位有符号整型lOffsetdw DWORD 32位无符号整型dwRangep * 指针pDoclp FAR* 远指针lpszNamelpsz LPSTR 32位字符串指针lpszNamelpsz LPCSTR 32位常量字符串指针lpszNamelpsz LPCTSTR 如果_UNICODE定义,则为32位常量字符串指针lpszName h handle Windows对象句柄hWndlpfn callback 指向CALLBACK函数的远指针资源类型命名规范前缀符号类型实例范围IDR_ 不同类型的多个资源共享标识IDR_MAIINFRAME 1~0x6FFFIDD_ 对话框资源IDD_SPELL_CHECK 1~0x6FFFHIDD_ 对话框资源的Help上下文HIDD_SPELL_CHECK 0x20001~0x26FF IDB_ 位图资源IDB_COMPANY_LOGO 1~0x6FFFIDC_ 光标资源IDC_PENCIL 1~0x6FFFIDI_ 图标资源IDI_NOTEPAD 1~0x6FFFID_ 来自菜单项或工具栏的命令ID_TOOLS_SPELLING 0x8000~0xDFFF HID_ 命令Help上下文HID_TOOLS_SPELLING 0x18000~0x1DFFFIDP_ 消息框提示IDP_INVALID_PARTNO 8~0xDEEFHIDP_ 消息框Help上下文HIDP_INVALID_PARTNO 0x30008~0x3DEFF IDS_ 串资源IDS_COPYRIGHT 1~0x7EEFIDC_ 对话框内的控件IDC_RECALC 8~0xDEEFMicrosoft MFC宏命名规范名称类型_AFXDLL 唯一的动态连接库(Dynamic Link Library,DLL)版本_ALPHA 仅编译DEC Alpha处理器_DEBUG 包括诊断的调试版本_MBCS 编译多字节字符集_UNICODE 在一个应用程序中打开UnicodeAFXAPI MFC提供的函数CALLBACK 通过指针回调的函数库标识符命名法标识符值和含义u ANSI(N)或Unicode(U)d 调试或发行:D = 调试;忽略标识符为发行。
匈牙利变量命名规则
匈牙利变量命名规则摘要:1.匈牙利命名法简介2.匈牙利命名法的基本规则3.匈牙利命名法的应用实例4.匈牙利命名法的优缺点正文:1.匈牙利命名法简介匈牙利命名法是一种广泛应用于计算机编程领域的变量命名规范,最早由匈牙利数学家艾兹赫尔·卡罗利(Ern Kálmán)提出,后来由IBM 的阿尔伯特·斯奇尔(Albert S.Householder)和克劳德·贝克(Claude C.Baker)进一步完善。
匈牙利命名法的主要特点是使用缩写来表示变量的含义,从而提高程序的可读性。
2.匈牙利命名法的基本规则匈牙利命名法包括以下基本规则:- 变量名以小写字母开头,即使该变量表示一个常量。
- 变量名中每个单词的首字母大写,除第一个单词外。
- 使用缩写来表示变量的含义。
常见的缩写有:a 表示“after”,b 表示“before”,i 表示“increment”,d 表示“decrement”,e 表示“even”,o 表示“odd”,s 表示“sum”,p 表示“product”,m 表示“minimum”,M 表示“maximum”,等等。
3.匈牙利命名法的应用实例以下是一些匈牙利命名法的应用实例:- a1 表示“a 之后的第一个数”- b2 表示“b 之前的第二个数”- i1 表示“第i 个数”- d2 表示“第d 个数的相反数”- e1 表示“第e 个偶数”- o3 表示“第o 个奇数”- s1 表示“前s 个数的和”- p1 表示“前p 个数的乘积”- m1 表示“第m 个数的最小值”- M1 表示“第M 个数的最大值”4.匈牙利命名法的优缺点匈牙利命名法的优点在于它简洁明了,能够快速地传达变量的含义。
尤其在代码中,匈牙利命名法能够提高程序的可读性,使程序员更容易理解代码的功能。
然而,匈牙利命名法也有一些缺点。
首先,由于它使用了大量的缩写,可能导致非母语人士难以理解。
匈牙利,骆驼,帕斯卡命名法规范
匈牙利命名法,骆驼命名法,帕斯卡命名法,C#命名规范一、匈牙利(Hungarian)命名法:广泛应用于象Microsoft Windows这样的环境中。
Windows 编程中用到的变量(还包括宏)的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。
匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀,标识出变量的作用域,类型等。
这些符号可以多个同时使用,顺序是先m_(成员变量),再指针,再简单数据类型,再其他。
例如:m_lpszStr, 表示指向一个以0字符结尾的字符串的长指针成员变量。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
在windowsForm 应用程序中,控件命名采用匈牙利命名法。
如TextBox类型,前缀加txt,例如命名为txtCustomerName,txtAddress。
Button类型, 前缀加btn,例如btnSave,btnDelete。
匈牙利命名法中常用的小写字母的前缀:前缀类型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 Pointer(指针)s 字符串型 (string)sz 以null做结尾的字符串型 (String with Zero End)w Word二、骆驼(camel)命名法:骆驼式命令法,正如它的名称所表示的那样,是指混合使用大小写字母来构成变量和函数的名字。
程序编程匈牙利命名法
程序编程匈牙利命名法在编程中,命名是非常重要的,良好的命名可以增加代码的可读性和可维护性。
而匈牙利命名法是一种广泛用于程序编程的命名规范,它以变量的类型作为前缀,用以区分不同类型的变量。
本文将介绍匈牙利命名法的定义、优缺点以及在实际应用中的使用。
一、匈牙利命名法的定义匈牙利命名法是由微软公司的Charles Simonyi在20世纪80年代提出的。
它的基本原则是将变量的类型作为前缀,以便于区分不同类型的变量。
匈牙利命名法的命名规则如下:1. 前缀:根据变量的类型添加相应的前缀,例如整型变量使用"i"作为前缀,字符串变量使用"s"作为前缀。
2. 首字母大写:除了前缀之外,变量名的首字母要大写,以提高可读性。
3. 驼峰命名法:变量名中的每个单词的首字母都大写,其余字母小写。
二、匈牙利命名法的优点1. 提高可读性:通过添加前缀和使用驼峰命名法,可以清晰地表示变量的类型和含义,增加代码的可读性。
2. 避免命名冲突:使用不同的前缀可以避免变量之间的命名冲突,减少错误的发生。
3. 方便代码维护:使用匈牙利命名法可以使代码更易于理解和修改,减少程序维护的难度。
三、匈牙利命名法的缺点1. 命名冗长:由于需要添加前缀和使用驼峰命名法,变量名可能会变得冗长,增加代码的长度。
这对于阅读和编写代码来说可能会带来一定的困扰。
2. 易混淆:如果不遵循匈牙利命名法的规则,或者前缀选择不当,可能会导致变量名之间的混淆,降低代码的可读性。
四、匈牙利命名法的实际应用在实际应用中,我们可以根据具体的编程语言和项目要求来选择是否使用匈牙利命名法。
以下是一些匈牙利命名法在不同场景下的应用示例:1. C语言中的匈牙利命名法:- 整型变量:int iCount;- 字符串变量:char szName[100];- 布尔型变量:bool bFlag;2. Java语言中的匈牙利命名法:- 整型变量:int iCount;- 字符串变量:String strName;- 布尔型变量:boolean bFlag;3. Python语言中的匈牙利命名法:- 整型变量:iCount = 0- 字符串变量:strName = "Hello"- 布尔型变量:bFlag = True通过以上示例可以看出,在不同编程语言中,匈牙利命名法的具体应用会有所差异,但其基本原则仍然是以变量类型作为前缀,提高代码的可读性和可维护性。
匈牙利命名法
匈牙利命名法《匈牙利命名法》是一种给变量命名的一种最常见的编程指导原则。
它的目的是确保变量的意义可以在代码中被明确理解,从而减少出错的可能性。
它是由古典程序员Charles Simonyi所提出的,其中他最著名的功绩是在Microsoft Word中开发出维护模式和保存文档的功能。
匈牙利命名法有三个基本原则,这些原则被称为前缀、中缀和后缀。
前缀指的是变量的类型,中缀指的是变量的状态,后缀指的是变量的动作。
这三个基本原则的核心思想是:通过这三个组成部分,可以将变量的功能和意义表达清楚,从而使得程序员容易理解变量的用途。
这种方式可以让我们的代码变得清晰,简易,更加容易维护和修改。
匈牙利命名法有三个类型:驼峰命名法:这种命名法有前缀和后缀,前缀表示变量的类型,而后缀则指变量的动作。
如stringUserName表示一个字符串类型的变量,它的动作是用户名。
下划线命名法:这种命名法有前缀和后缀,不同于驼峰命名法,下划线命名法有两个下划线符号隔开,前缀表示变量的类型,后缀表示变量的动作。
如string__user_name表示一个字符串类型的变量,它的动作是用户名。
静态命名法:这种命名法有前缀和中缀,前缀表示变量的类型,而中缀指变量的状态。
如StringUserIsAdmin表示一个字符串类型的变量,它的状态是用户是管理员。
在实际应用中,大多数程序员会选择驼峰命名法,因为它的命名方式比较清晰,也比较容易理解。
驼峰命名法也是C语言编程中最常用的命名方式,它可以让程序员在编程过程中更容易地控制变量的使用。
正确地使用匈牙利命名法可以帮助我们写出更好、更清晰、更易于维护的代码。
它有助于减少程序员出现调试错误的可能性,也能够让代码更容易被他人理解。
对于那些拥有良好命名习惯的程序员来说,他们可以更快速地开发出良好的代码。
总而言之,使用匈牙利命名法可以极大地提升开发效率,提高程序的可读性和可维护性。
C语言常见命名规范
1 常见命名规则比较著名的命名规则首推匈牙利命名法,这种命名方法是由Microsoft程序员查尔斯·西蒙尼(Charles Simonyi) 提出的。
其主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
例如:lpszStr, 表示指向一个以'\0'结尾的字符串(sz)的长指针(lp)变量。
骆驼(Camel)命名法近年来越来越流行,在许多新的函数库和Java这样的平台下使用得当相多。
骆驼命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。
其中第一个单词首字母小写,余下的单词首字母大写。
例如:printEmployeePaychecks(),函数名中每一个逻辑断点都有一个大写字母来标记。
帕斯卡(Pascal)命名法与骆驼命名法类似。
只不过骆驼命名法是第一个单词首字母小写,而帕斯卡命名法则是第一个单词首字母大写。
例如:DisplayInfo()和UserName都是采用了帕斯卡命名法。
在C#中,以帕斯卡命名法和骆驼命名法居多。
事实上,很多程序设计者在实际命名时会将骆驼命名法和帕斯卡结合使用,例如变量名采用骆驼命名法,而函数采用帕斯卡命名法。
另一种流行的命名规则称为下划线命名法。
下划线法是随着C语言的出现流行起来的,在UNIX/LIUNX这样的环境,以及GNU代码中使用非常普遍。
本章所述的命名规则主要基于下划线命名法发展而来。
2 函数的命名函数名使用下划线分割小写字母的方式命名:设备名_操作名()操作名一般采用:谓语(此时设备名作为宾语或者标明操作所属的模块)或者谓语+宾语/表语(此时设备名作为主语或者标明操作所属的模块)等形式,如:tic_init()adc_is_busy()uart_tx_char()中断函数的命名直接使用设备名_isr() 的形式命名,如:timer2_isr()3 变量的命名变量的命名也采用下划线分割小写字母的方式命名。
c 语言命名规则
C语言命名规则详解C语言是一种广泛使用的编程语言,它有自己的命名规则,用来给变量、函数、类型、常量等标识符起名字。
命名规则的目的是让代码更加清晰、易读、统一和规范。
本文介绍了C语言中常见的四种命名法则:驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法,以及它们的优缺点和适用场合。
本文还介绍了一些通用的命名原则和建议,以及不同类型的标识符的命名规范和示例。
本文尽量使用表格来对比和总结不同的命名法则和规范,方便读者理解和记忆。
1. 常见的命名法则在C语言中,有四种比较流行的命名法则:驼峰命名法、匈牙利命名法、帕斯卡命名法和下划线命名法。
它们的特点和区别如下表所示:命名法则特点优点缺点适用场合驼峰命名法以小写字母开头,每个单词首字母大写,不含下划线简洁,节省空间不够明显,容易混淆变量、函数匈牙利命名法以类型或作用域为前缀,每个单词首字母大写,不含下划线明确,易于区分冗长,复杂变量、函数帕斯卡命名法以大写字母开头,每个单词首字母大写,不含下划线规范,一致不够灵活,容易冲突类型、常量下划线命名法全部小写,单词之间用下划线连接清晰,易读占用空间,不美观变量、函数2. 通用的命名原则除了遵循上述的命名法则外,还有一些通用的原则和建议可以帮助我们更好地给标识符起名字:标识符的名称应该有明确的含义,反映其作用和功能,避免使用无意义或歧义的名称。
标识符的名称应该尽量简洁而完整,避免过长或过短。
过长的名称会占用空间和时间,过短的名称会缺乏信息和可读性。
标识符的名称应该使用英文单词或常用的缩写,避免使用中文拼音或其他语言。
如果使用缩写,应该保证其能被广泛理解和接受。
标识符的名称应该区分大小写,并且保持一致。
不同类型的标识符可以采用不同的大小写风格,但同一类型的标识符应该遵循同一种风格。
标识符的名称应该避免与C语言的关键字和保留字冲突或混淆。
如果不得已使用关键字或保留字,应该加上前缀或后缀来区分。
标识符的名称应该根据其作用域和可见性来命名。
匈牙利标记法
匈牙利标记法匈牙利标记法是编程中变量的一种命名习惯。
[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语言第08讲匈牙利命名法
C语言第08讲匈牙利命名法第08讲匈牙利命名法一、匈牙利命名法匈牙利命名法计算机程序设计中的一种命名规则,用这种方法命名的变量显示了其数据类型。
匈牙利命名法有两种:系统匈牙利命名法和匈牙利应用命名法。
匈牙利命名法被设计成语言独立的,并且首次在BCPL语言中被大量使用。
由于BCPL只有机器字这一种数据类型,因此这种语言本身无法帮助程序员来记住变量的类型。
匈牙利命名法通过明确每个变量的数据类型来解决这个问题。
在匈牙利命名法中,一个变量名由n个小写字母开始,这些字母有助于记忆变量的类型和用处,紧跟着的就是程序员选择的任何名称。
这个后半部分的首字母可以大写以区别前面的类型指示字母(参见驼峰式大小写)。
二、系统匈牙利命名法与匈牙利应用命名法 1、系统命名法与应用命名法的区别在于前缀的目的在系统匈牙利命名法中,前缀代表了变量的实际数据类型。
例如:lAccountNum : 变量是一个长整型 ("l");arru8NumberList : 变量是一个无符号8位整型数组 ("arru8");szName : 变量是一个零结束字符串 ("sz"),这是西蒙尼最开始建议的前缀之一。
匈牙利应用命名法不表示实际数据类型,而是给出了变量目的的提示,或者说它代表了什么。
rwPosition : 变量代表一个行 ("rw")。
usName : 变量代表一个非安全字符串 ("us"),需要在使用前处理。
strName : 变量代表一个包含名字的字符串("str")但是没有指明这个字符串是如何实现的。
2、西蒙尼建议的大多数前缀都是自然语义的,但不是所有由于这种命名法通常使用小写字母开头用来助记,但是并没有对助记符本身作规定。
有几种被广泛使用的习惯(见下面的示例),但是任意字母组合都可以被使用,只要它们在代码主体中保持一致就可以了。
C++编程匈牙利命名法
匈牙利命名法匈牙利命名法是一种编程时的命名规范。
基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。
命名要基于容易记忆容易理解的原则。
保证名字的连贯性是非常重要的。
据说这种命名法是一位叫Charles Simonyi的匈牙利程序员发明的,后来他在微软呆了几年,于是这种命名法就通过微软的各种产品和文档资料向世界传播开了。
现在,大部分程序员不管自己使用什么软件进行开发,或多或少都使用了这种命名法。
这种命名法的出发点是把量名变按:属性+类型+对象描述的顺序组合起来,以使程序员作变量时对变量的类型和其它属性有直观的了解,下面是HN变量命名规范,其中也有一些是我个人的偏向:属性部分:全局变量g_常量c_c++类成员变量m_静态变量s_类型部分:指针p函数fn无效v句柄h长整型l布尔b浮点型(有时也指文件)f双字dw字符串sz短整型n双精度浮点d计数c(通常用cnt)字符ch(通常用c)整型i(通常用n)字节by字w实型r无符号u描述部分最大Max最小Min初始化Init临时变量T(或Temp)源对象Src目的对象Dest这里顺便写几个例子:hwnd:h是类型,表示句柄描述,wnd是变量对象描述,表示窗口,所以hwnd表示窗口句柄;pfnEatApple:pfn是类型描述,表示指向函数的指针,EatApple是变量对象描述,所以它表示指向EatApple函数的函数指针变量。
g_cch:g_是属性描述,表示全局变量,c和ch分别是计数类型和字符类型,一起表示变量类型,这里忽略了对象描述,所以它表示一个对字符进行计数的全局变量。
上面就是HN命名法的一般规则。
小结:匈牙利命名法匈牙利命名法MFC、句柄、控件及结构的命名规范Windows类型样本变量MFC类样本变量HWND hWnd;CWnd*pWnd;HDLG hDlg;CDialog*pDlg;HDC hDC;CDC*pDC;HGDIOBJ hGdiObj;CGdiObject*pGdiObj;HPEN hPen;CPen*pPen;HBRUSH hBrush;CBrush*pBrush;HFONT hFont;CFont*pFont;HBITMAP hBitmap;CBitmap*pBitmap;HPALETTE hPaltte;CPalette*pPalette;HRGN hRgn;CRgn*pRgn;HMENU hMenu;CMenu*pMenu;HWND hCtl;CState*pState;HWND hCtl;CButton*pButton;HWND hCtl;CEdit*pEdit;HWND hCtl;CListBox*pListBox;HWND hCtl;CComboBox*pComboBox;HWND hCtl;CScrollBar*pScrollBar;HSZ hszStr;CString pStr;POINT pt;CPoint pt;SIZE size;CSize size;RECT rect;CRect rect;一般前缀命名规范前缀类型实例C类或结构CDocument,CPrintInfom_成员变量m_pDoc,m_nCustomers变量命名规范前缀类型描述实例ch char8位字符chGradech TCHAR如果_UNICODE定义,则为16位字符chNameb BOOL布尔值bEnablen int整型(其大小依赖于操作系统)nLengthn UINT无符号值(其大小依赖于操作系统)nHeightw WORD16位无符号值wPosl LONG32位有符号整型lOffsetdw DWORD32位无符号整型dwRangep*指针pDoclp FAR*远指针lpszNamelpsz LPSTR32位字符串指针lpszNamelpsz LPCSTR32位常量字符串指针lpszNamelpsz LPCTSTR如果_UNICODE定义,则为32位常量字符串指针lpszName h handle Windows对象句柄hWndlpfn callback指向CALLBACK函数的远指针前缀符号类型实例范围IDR_不同类型的多个资源共享标识IDR_MAIINFRAME1~0x6FFFIDD_对话框资源IDD_SPELL_CHECK1~0x6FFFHIDD_对话框资源的Help上下文HIDD_SPELL_CHECK0x20001~0x26FF IDB_位图资源IDB_COMPANY_LOGO1~0x6FFFIDC_光标资源IDC_PENCIL1~0x6FFFIDI_图标资源IDI_NOTEPAD1~0x6FFFID_来自菜单项或工具栏的命令ID_TOOLS_SPELLING0x8000~0xDFFF HID_命令Help上下文HID_TOOLS_SPELLING0x18000~0x1DFFFIDP_消息框提示IDP_INVALID_PARTNO8~0xDEEFHIDP_消息框Help上下文HIDP_INVALID_PARTNO0x30008~0x3DEFF IDS_串资源IDS_COPYRIGHT1~0x7EEFIDC_对话框内的控件IDC_RECALC8~0xDEEFMicrosoft MFC宏命名规范名称类型_AFXDLL唯一的动态连接库(Dynamic Link Library,DLL)版本_ALPHA仅编译DEC Alpha处理器_DEBUG包括诊断的调试版本_MBCS编译多字节字符集_UNICODE在一个应用程序中打开UnicodeAFXAPI MFC提供的函数CALLBACK通过指针回调的函数库标识符命名法标识符值和含义u ANSI(N)或Unicode(U)d调试或发行:D=调试;忽略标识符为发行。
最新C++之匈牙利命名法
C++之匈牙利命名法
在编程时,变量、函数的命名是一个极其重要的问题。
好的命名方法使变量易于记忆且程序可读性大大提高。
Microsoft采用匈牙利命名法来命名Windows API函数和变量。
匈牙利命名法是由Microsoft的著名开发人员、Excel的主要设计者查尔斯·西蒙尼在他的博士论文中提出来
我们先看一下我们低海拔的平原到底有多少。
图中国真正的平原地区
我们会发现中国几千年扩张的这么大的地盘,其实平原相比少的可怜,在没有获得四川盆地和东北平原的时代,我们所熟知的夏商西周春秋战国,其实主要的活动区域仅仅是上面的黄色区域(华北平原)和红色区域(渭河谷地)以及长江边缘的小型平原。
其实大家也发现了,上图中往往有河流的地方,才有所谓平原。
其实绝大部分的平原,都是一种叫做“冲积平原”的东西,也就是说河流携带大量泥沙,然后沉积在地表,形成平坦肥沃的土地。
所以我们可以看到,我们最大最古老的华北平原,其实就是黄河冲积形成的肥沃土地。
华北平原。
匈牙利命名法及实用规则.
一、匈牙利命名法:Windows 编程中用到的变量(还包括宏的命名规则匈牙利命名法,这种命名技术是由一位能干的 Microsoft 程序员查尔斯·西蒙尼 (Charles Simonyi 提出的。
基本原则是:变量名=属性+类型+对象描述⑴属性部分:全局变量:g_常量 :c_类成员变量:m_⑵类型部分:数组:a布尔型:b byte: bychar: c 字节计数 : cb 颜色引用值 : cr 坐标差(长度 : cx,cy双字 (DWORD: dw浮点型:f 函数 : fn句柄:h整数 (integer: i长整型 (long: l long 型指针 : lp短整型:n near 指针 : np指针:pstring: s 用 '\0'终止的字符串 : sz文本内容 : tm无符号:uWord: w坐标 : x,y⑶描述部分:初始化:Init临时变量:Tmp目的对象:Dst源对象:Src窗口:Wnd下边举例说明:hwnd :h 表示句柄, wnd 表示窗口,合起来为“窗口句柄” 。
m_bFlag:m 表示成员变量, b 表示布尔,合起来为:“某个类的成员变量,布尔型,是一个状态标志” 。
1,变量命名;2,常量命名、宏定义;3,资源名字定义格式;4,函数命名和命名空间、类的命名、接口的命名;5,结构体命名;6,控件的命名;7,注释;本文来自 CSDN 博客,转载请标明出处:/stkim/archive/2004/09/29/120347.aspx 匈牙利命名法通过在变量名前面加上相应的小写字母的符号标识作为前缀, 标识出变量的作用域, 类型等。
这些符号可以多个同时使用, 顺序是先 m_(成员变量 , 再指针, 再简单数据类型, 再其他。
例如:m_lpszStr, 表示指向一个以 0字符结尾的字符串的长指针成员变量。
匈牙利命名法关键是:标识符的名字以一个或者多个小写字母开头作为前缀;前缀之后的是首字母大写的一个单词或多个单词组合,该单词要指明变量的用途。
匈牙利命名法
匈⽛利命名法匈⽛利命名法变量(还包含宏)的命名规则,⽐較系统和彻底的有 Windows 编程中⽤到的匈⽛利命名法。
匈⽛利命名法通过在变量名前⾯加上对应的⼩写字母的符号标识作为前缀,标识出变量的作⽤域,类型等。
这些符号能够多个同⼀时候使⽤,顺序是先m_(成员变量),再指针,再简单数据类型,再其它。
⽐如:m_lpszStr, 表⽰指向⼀个以0字符结尾的字符串的长指针成员变量。
有关匈⽛利命名法的⼀点有意思的说明是它的名字的由来。
这样的命名技术是由⼀位能⼲的 Microsoft 程序猿查尔斯·西蒙尼(Charles Simonyi) 提出的,他出⽣在匈⽛利。
在 Microsoft 公司中和他⼀起⼯作的⼈被教会使⽤这样的约定。
这对他们来说⼀切都⾮常正常。
但对那些 Simonyi领导的项⽬组之外的⼈来说却感到⾮常奇特,他们觉得这是死板的表达⽅式,甚⾄说代有这样奇怪的外观是由于它是⽤匈⽛利⽂写的。
从此这样的命名⽅式就被叫做匈⽛利命名法。
匈⽛利命名法关键是:标识符的名字以⼀个或者多个⼩写字母开头作为前缀;前缀之后的是⾸字母⼤写的⼀个单词或多个单词组合,该单词要指明变量的⽤途。
匈⽛利命名法中经常使⽤的⼩写字母的前缀前 缀类 型a数组 (Array)b布尔值 (Boolean)by字节 (Byte)c有符号字符 (Char)cb⽆符号字符 (Char Byte,没有多少⼈⽤)cr颜⾊參考值 (ColorRef)cx,cy坐标差(长度 ShortInt)dw Double Wordfn函数h Handlei整型l长整型 (Long Int)lp Long Pointerm_类的成员n短整型 (Short Int)np Near Pointerp Pointers字符串型sz以null做结尾的字符串型 (String with Zero End)w Word可是在不论什么情况下,都硬性规定使⽤匈⽛利命名法是迂腐的。
匈牙利变量命名规则
匈牙利变量命名规则1. 背景介绍匈牙利命名规则(Hungarian Notation)是一种变量命名约定,最早由Charles Simonyi在微软公司内部提出并广泛应用。
它的主要目的是增加代码的可读性和可维护性,通过在变量名中加入类型信息,使程序员更容易理解变量的用途和数据类型。
匈牙利命名规则在很多编程语言中都有应用,例如C、C++、C#等。
2. 命名规则匈牙利命名规则的核心思想是在变量名前面加上一个或多个小写字母前缀,用以表示变量的类型或其他属性。
下面是一些常见的匈牙利前缀及其含义:•b:布尔型(bool)•c:字符型(char)•dw:双字(double word)•f:浮点型(float)•i:整型(int)•l:长整型(long)•n:短整型(short)•p:指针(pointer)•s:字符串(string)•sz:以null结尾的字符串(null-terminated string)•ui:无符号整型(unsigned int)•ul:无符号长整型(unsigned long)•us:无符号短整型(unsigned short)除了类型前缀,还可以根据变量的用途和作用域添加其他前缀,以进一步提高代码的可读性。
例如:•g_:全局变量(global)•m_:成员变量(member)•s_:静态变量(static)•p_:指针变量(pointer)•n_:常量(constant)3. 示例以下是一些使用匈牙利命名规则的示例:int iCount; // 整型计数器char cFirst; // 第一个字符float fPrice; // 价格bool bEnabled; // 是否启用LPSTR pszName; // 字符串指针const int nMaxSize = 100; // 最大尺寸常量static int s_iCount; // 静态计数器通过这种命名规则,我们可以很容易地判断变量的类型和作用,提高代码的可维护性。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
pScrollBar;
HSZ
tr;
CString
pStr;
POINT
pt;
CPoint
pt;
SIZE
size;
CSize
size;
RECT
rect;
CRect
rect;
一般前缀命名规范
前缀
类型
实例
C
类或结构
CDocument,CPrintInfo
S
结构体
SAddress
m_
成员变量
m_pDoc,m_nCustomers
32位字符串指针
lpszName
lpsz
LPCSTR
32位常量字符串指针
lpszName
lpsz
LPCTSTR
如果_UNICODE定义,则为32位常量字符串指针
lpszName
h
handle
Windows对象句柄
hWnd
lpfn
callback
指向CALLBACK函数的远指针
?
if
输入文件流
ifDataFile
匈牙利命名法为C标识符的命名定义了一种非常标准化的方式,这种命名方式是以两条规则为基础:
1.标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类型。
2.在标识符内,前缀以后就是一个或者多个第一个字母大写的单词,这些单词清楚地指出了源代码内那个对象的用途。比如,m_szStudentName表示一个学生名字的类成员变量,数据类型是字符串型。
pMenu;
HWND
hCtl;
CState*
pState;
HWND
hCtl;
CButton*
pButton;
HWND
hCtl;
CEdit*
pEdit;
HWND
hCtl;
CListBox*
pListBox;
HWND
hCtl;
CComboBox*
pComboBox;
HWND
hCtl;
CScrollBar*
C++之匈牙利命名法
在编程时,变量、函数的命名是一个极其重要的问题。好的命名方法使变量易于记忆且程序可读性大大提高。Microsoft采用匈牙利命名法来命名Windows API函数和变量。匈牙利命名法是由Microsoft的著名开发人员、Excel的主要设计者查尔斯·西蒙尼在他的博士论文中提出来的,由于西蒙尼的国籍是匈牙利,所以这种命名法叫匈牙利命名法。
变量命名规范
前缀
类型
描述
实例
c
char
8位字符
cGrade
str
string
字符型
strName
ch
TCHAR
如果_UNICODE定义,则为16位字符
chName
b
BOOL
布尔值
bEnable
n ,i
int
整型(其大小依赖于操作系统)
nLength
si
short int
短整型
siSequ
n
UINT
无符号值(其大小依赖于操作系统)
of
输出文件流
ofStuFile
sz
以"\0"结束的字符串
szAppName
(注:专业文档是经验性极强的领域,无法思考和涵盖全面,素材和资料部分来自网络,供参考。可复制、编制,期待你的好评与关注)
HBRUSH
hBrush;
CBrush*
pBrush;
HFONT
hFont;
CFont*
pFont;
HBITMAP
hBitmap;
CBitmap*
pBitmap;
HPALETTE
hPaltte;
CPalette*
pPalette;
HRGN
hRgn;
CRgn*
pRgn;
HMENU
hMenu;
CMenu*
附录:
MFC、句柄、控件及结构的命名规范
Windows类型
样本变量
MFC类
样本变量
HWND
hWnd;
CWnd*
pWnd;
HDLG
hDlg;
CDialog*
pDlg;
HDC
hDC;
CDC*
pDC;
HGDIOBJ
hGdiObj;
CGdiObject*
pGdiObj;
HPEN
hPen;
CPen*
pPen;