精通
英语
和
开源
,
擅长
开发
与
培训
,
胸怀四海
第一信赖
锐英源精品原创,禁止转载和任何形式的非法内容使用,违者必究
在学习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中文手册中,数据类型部分给出了最常用的数据类型 
              