匈牙利命名法(转载)

匈牙利命名法

  匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。命名要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的

        在编程时,变量、函数的命名是一个极其重要的问题。好的命名方法使变量易于记忆且程序可读性大大提高。Microsoft采用匈牙利命名法来命名Windows API函数和变量。匈牙利命名法是由Microsoft的著名开发人员、Excel的主要设计者查尔斯·西蒙尼在他的博士论文中提出来的,由于西蒙尼的国籍是匈牙利,所以这种命名法叫匈牙利命名法。

    匈牙利命名法为C标识符的命名定义了一种非常标准化的方式,这种命名方式是以两条规则为基础:

    1.标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类型。

    2.在标识符内,前缀以后就是一个或者多个第一个字母大写的单词,这些单词清楚地指出了源代码内那个对象的用途。比如,m_szStudentName表示一个学生名字的类成员变量,数据类型是字符串型。

附录:

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,CPrintInfo

S

结构体

SAddress

m_

成员变量

m_pDoc,m_nCustomers

变量命名规范

前缀

类型

描述

实例

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

无符号值(其大小依赖于操作系统)

nHeight

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

32位字符串指针

lpszName

lpsz

LPCSTR

32位常量字符串指针

lpszName

lpsz

LPCTSTR

如果_UNICODE定义,则为32位常量字符串指针

lpszName

h

handle

Windows对象句柄

hWnd

lpfn

callback

指向CALLBACK函数的远指针

?

if

 

输入文件流

ifDataFile

of

 

输出文件流

ofStuFile

sz

 

以"\0"结束的字符串

szAppName

 

属性部分

 

全局变量  g_ 

常量    c_  

c++类成员变量  m_ 

静态变量  s_    

 

类型部分  

 

指针

函数 fn 

无效

句柄

长整型

布尔 b  

浮点型(有时也指文件)

双字 dw 

字符串 sz 

短整型

双精度浮点 d  

计数 c(通常用cnt 

字符 ch(通常用c

整型 i(通常用n 

字节 by 

实型

无符号 u    

 

描述部分  

 

最大 Max 

最小 Min 

初始化 Init  

临时变量 T(或Temp 

源对象 Src 

目的对象 Dest

 

 

1)文件名的匈牙利命名法:
      
文件的名称也应该遵循匈牙利命名法,其以F+名字(名字首字母大写)的形式出现。
比如:
      
FFun.cpp(工程名)
      
FName.c(文件名)(打开VC++之后的命名)

2)常量的匈牙利命名法:
      
所有的常量命名都是以c_+名字(名字都是大写字母,多个单词用“_”连接)的形式出现。
比如:
      
# define c_MAX_NUM 100;

3)变量的匈牙利命名法:
      
应用匈牙利命名法,所有的变量名都应该以前缀+名字(名字首字母大写)的形式出现。
比如:
      
char szName;
       int iNum;
备注:计数(备注)变量不适用匈牙利命名法,直接使用i,j,k

 4)函数的匈牙利命名法:
      
函数的命名不带前缀,函数中每一个单词的开头字母都要大写
比如:
      
int ConvertNumber(int ix);
       void ShowMessage(char szMessage);

 5)结构体的匈牙利命名法:
      
结构体类型命名必须以_+名字(名字都是大写字母,多个单词用“_”连接)的形式出现。替代名以名字都是大写字母,多个单词用“_”连接的形式出现。
      
结构体变量命名必须以m_+名字(与变量命名一致)的形式出现。
比如:
      
typedef struct _DATABAS
{
char m_
szProductName[20];
char m_szAuthor[20];
char m_szReleaseDate[16];
char m_szVersion[10];
}DBS_DATABASE;

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值