Lonz's 网络文档集

匈牙利命名法

按照MS方式编程:匈牙利符号表示法
匈牙利符号表示法包括许多与下列命名有关的约定:
(1)变量
(2)函数
(3)类型和常量
(4)类
(5)参数
匈牙利符号表示法的前缀代码指导说明书:
**************************************************************************
前缀 数据类型(基本类型)
C 字符
BY 字节
N 短整数和整数(表示一个数)
I 整数
X,Y 短整数(通常用于X坐标和Y坐标)
CX,CY短整数(通常用于表示X和Y的长度,C表示计数)
B 布尔型
W UINT(无符号数)和WORD(无符号字)
L LONG(长整数)
DW DWORD(无符号长整数)
FN 函数指针
S 串
SZ,STR 以0字节终止的字符串
LP 32位长整数指针
H 编号(常用于表示Windows对象)
MSG消息
**************************************************************************
变量的命名:
应用匈牙利表示法,变量可用上表中的前缀代码来表示。另外,当一个变量是由一个或几个子名构成时,每一个子名都要以大写字母开头。下

面是几个例子:
char *szfileName; // a nulla terminated string:以0终止的字符串
int *lpidate;// a 32-bit pointer to an int:指向一个整型变量的32位的长指针
Bool,bSemaphore; //a boolean value
WORD dwMaxCount // a 32-bit unsigned WORD
尽管我们了解一个函数的局部变量没有说明,但是也有个别表示全局变量必须要以 g_ 开头:
int g_iXPos;// a global x-position
int g_iTimer; // a global y-position
char *g_szString //a global NULL terminated string
函数的命名:
函数和变量的命名方式相同,但是没有前缀,换句话说,子名的第一个字母要大写。下面是几个例子:
int PlotPixel(int ix,int iy,int ic);
void *MemScan(char *szString);
而且,下划线是非法的。例如,下面的函数名表示是无效的匈牙利表示法:
int Get_Pixel(int ix,int iy);
类型和常量的命名:
所有的类型和常量都是大写字母,但名字中可以允许有下划线。如:
const LONG NUM_SECTORS=100; // a C++ style constant
#define MAX_CELLS 64; // a C style constant
#define POWERUNIT 100;// a C style constant
typedef unsigned char UCHAR;// a user defined type
类的命名
类命名的约定可能要麻烦一点。但我也看到有很多人在使用这个约定,并独立地进行补充。不管怎么说,所有C++的类必须以大写C为前缀,类

名字的每一个子名的第一个字母都必须大写:
class CVector// the chinese mean of vector is 矢量
{
public
CVector();
{ix=iy=iz=imagnitude=0;} //the chinese mean of magnitude is 大小
CVector(int x, int y, int z)
{ix=x;iy=y;iz=z;}
......
private:
int ix,iy,iz;//the position of the vector
int imagnitude; //the magnitude of the vector
......
}
参数的命名
函数的参数命名和标准变量命名的约定相同。但也不总是如此。如:
UCHAR GetPixel(int x,int y);
这种情况下,更准确的匈牙利的函数原型是:
UCHAR GetPixel(int ix,int iy);



posted on 2006-03-02 18:24  Lonz's 网络文档集  阅读(331)  评论(0编辑  收藏  举报

导航