精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止转载和任何形式的非法内容使用,违者必究
在学习MFC的过程中,尽管用的是之前早已学习过的C++语言,但是却给人很强的陌生感,究其原因,其中很大一部分是数据类型造成的,明明都是用的同一种语言,数据类型为什么有这么大的差别,通过一个变量,我们转到定义处,一探究竟,如下所示:
typedef unsigned long DWORD;
typedef int BOOL;
typedef unsigned char BYTE;
typedef unsigned short WORD;
typedef float FLOAT;
typedef FLOAT *PFLOAT;
typedef BOOL near *PBOOL;
typedef BOOL far *LPBOOL;
typedef BYTE near *PBYTE;
typedef BYTE far *LPBYTE;
typedef int near *PINT;
typedef int far *LPINT;
typedef WORD near *PWORD;
typedef WORD far *LPWORD;
typedef long far *LPLONG;
typedef DWORD near *PDWORD;
typedef DWORD far *LPDWORD;
typedef void far *LPVOID;
typedef CONST void far *LPCVOID;
typedef int INT;
typedef unsigned int UINT;
typedef unsigned int *PUINT;
原来是将我们熟悉的类型都起了别名,因此我认为还是很有必要把这些新名称搞清楚,一方面是有利于我们查阅代码,快速读懂代码。还有一方面就是搞清楚之后自己写代码也不至于总是心有余辜,总感觉自己用的变量名会不会“out”了,既然官方给起了新的别名,还是想尽量给用上。
从上表我们发现新类型的字母都是大写,这是新类型的一个特点,首先我们看非指针型的变量,大部分基本都能让人联想到它的原本含义,重点就是大写的BOOL类型,它竟然也表示int类型,这点需要我们重点了解一下。
对于指针类型,仔细看,我们不难发现规律,相比与原来的类型,只不过是多了一个P,同时如果是长指针的话,再多加一个L,静态的话,多加一个C。 长指针和近指针是旧的内存模式保留下来的命名。
对数据类型重命名是很多库经常用的机制,有的会出现int16,int32这样的命名。初学者要对这个现象能够接受。
在mfc中文手册中,数据类型部分给出了最常用的数据类型