按照MS方式编程:匈牙利符号表示法
匈牙利符号表示法包括许多与下列命名有关的约定:
①变量 ②函数 ③类型和常量 ④类 ⑤参数
匈牙利符号表示法的前缀代码指导说明书:
*************************************************
前缀 数据类型(基本类型)
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 ; // 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 2005-10-26 09:59
萌芽的叶子 阅读(175)
评论(0) 编辑 收藏 引用 所属分类:
asp.net