匈牙利命名规范

匈牙利法最大的特征就是类型前缀

一、        类和接口

1、           命名:类名都以大写字母“C”开头,后跟一个或多个单词。每个单词的首字母要大写。接口以大写"I"开头,代表Interface

2、           组成形式:推荐用"名词""形容词+名词"的形式,例如:"CAnalyzer", "CFastVector" ....

二、        函数

1、           命名:函数的名称由一个或多个单词组成。每个单词的首字母要大写。最长不得超过20个字符。

2、           组成形式:全局函数应当使用"动词"或者"动词+名词"(动宾词组)的形式。例如:"gGetName()", " gDrawBox()"

类成员函数应当只使用动词,被省略掉的名词就是对象本身。例如:

" box->Draw();"

3、           全局函数:以小写前缀"g"开头。

4、           保护成员函数:开头应当加上一个下划线“_”以示区别,例如:"_SetState()"

5、           私有成员函数:开头应当加上两个下划线“__”,例如:"__DestroyImp()"

6、           虚函数:习惯以“Do”开头,如:"DoRefresh()", "_DoEncryption()"

7、           回调和事件处理函数 :习惯以单词“On”开头。例如:"_OnTimer()", "OnExit()"

三、        变量

变量是程序中使用最多的标识符,变量的命名规范是一套C++命名规范中最重要的部分:

1、           命名:变量名由作用域前缀+类型前缀+一个或多个单词组成。变量用小写字母开头的单词组合而成,第二个单词的首字母要大写。例如:int nDrawMode。变量最长不得超过20个字符。

特殊的:对于某些用途简单明了的局部变量,也可以使用简化的方式,如:i, j, k, x, y, z

2、           组成形式:变量的名字应当使用"名词"或者"形容词+名词"。例如:"nCode", "m_nState""nMaxWidth"" oldValue "" newValue "

3、           作用域前缀:作用域前缀标明一个变量的可见范围。作用域可以有如下几种:

前缀

说明

例子

局部变量

 

m_

类的成员变量(member

Int  m_width

ms_

类的静态成员变量(static member

static int ms_initValue;

s_

静态变量(static

static int s_initValue; 

g_

外部全局变量(global

int g_howManyPeople;

sg_

静态全局变量(static global

 

gg_

进程间共享的共享数据段全局变量(global global

 

说明:作用域前缀不同于下面的类型前缀,应该坚决执行。原因是:

1变量作用域和链接性改变的情况是很少的,例如,很少的情况下会把一个成员变量改成静态变量

2编程中使用的工具常常不会直观的显示变量的作用域和链接性

4、           类型前缀:作用域前缀标明一个变量的可见范围。类型前缀标明一个变量的类型,有如下几种:

前缀

说明

例子

b

布尔型变量(bool, BOOL

bEnable

ch

字符型变量(char TCHAR

chName

lpsz

LPSTRLPCSTRLPCTSTR

lpszName

n

整型和位域变量(int, UINT,__int32,__int64

nLength

l

long

lOffset

by

BYTE

 

w

WORD

wPos

dw

DWORD

dwRange

f

浮点型变量(float

 

d

double

 

p

指针型变量和迭代子(pointer

pDoc

lp

远指针

 

e

枚举型变量(enumeration

 

pfn

特别针对指向函数的指针变量和函数对象指针(pointer of function

 

g

数组(grid

 

h

handle   Windows对象句柄

hWnd

四、        常量

常量名由类型前缀+全大写字母组成,单词间通过下划线来界定,如:cDELIMITERnMAX_BUFFER类型前缀的定义与变量命名规则中的相同。

五、        结构体、宏、枚举变量、联合体

全部由前缀+大写字母组成,单词间使用下划线界定。

1、           结构体:加小写前缀"tag",之后以大写字母开头。

例:

typedef struct tagPOINT

{

int x;

int y;

} POINT;

2、           宏:大写字母组成,单词间使用下划线界定

例:#define MAXNUMBER 100

3、           枚举变量:加小写前缀"enum" 

例:

typedef enum _FILE_OPEN_MODE

{

OPEN_READONLY

OPEN_READWRITE

}FILE_OPEN_MODE;

4、           联合体:加小写前缀"uni"

例:

typedef union _VARIANT

{

char unichVal;

int uninVal;

float uniftVal;

} VARIANT;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值