如果你有一个大型项目,那么应该提出一个编写代码的标准方式,否则他会混乱不堪。
微软使用一个名为匈牙利编码规范,他使用在微软任何产品内,如果你要使用微软的API,或者你也需要一套类似的编码规范,那么学习一下总是没有错的。
匈牙利符号表示法包括下列命名约定:
- 变量
- 函数
- 类型和常量
- 类
- 参数
前缀 | 数据类型(基础类型) |
c | char(字符) |
by | BYTE(字节,无符号字符) |
n | short(短整数和整数,表示一个数) |
i | int(整数) |
x,y | short(短整数,通常用于x坐标和y坐标) |
cx,cy | short(短整数,通常用于表示x和y的长度;c表示计数) |
b | BOOL(int) |
w | UINT(无符号整数)和WORD(无符号字) |
l | LONG(长整型) |
dw | DWORD(无符号长整型) |
fn | 函数指针 |
s | 字符串 |
sz,str | 以一个字节为0(空值)终止的字符串 |
lp | 32位长指针 |
h | 句柄(常用于windows对象) |
msg 消息
变量的命名
每一个单词开头大写,全局变量均已g_开头。
char *szYouName; //字符串
int *lpiData; //32位int指针
//全局变量均已g_开头
int g_ixPos; //全局int变量
char *g_szStr; //全局字符串
函数的命名
函数命名与变量命名方式相同,但是没有前缀。
int PlotPixel(int ix,int iy,int ic);
void *MemScan(char *szString);
类型和常量的命名
所有类型和常量都是大写字母,名字中可以有下划线。
const LONG MUN_SECTORS = 100;
#define MAX_CELLS 64;
typedef unsigned char UCHAR;
类的命名
规定所有c++类必须以大写C为前缀,类名第一个字母大写。
class CVector
{
public:
CVector(){}
.
.
.
private:
int ix,iy,iz;
}