VC++的数据类型较复杂,但好多是等效的,可以互换。根据需要,这里分为如下几类。
一、C与C++基本类型的等效性
1、以下几种数据等效:
char、signed char,__int8与char范围一致,但类型不一样。
2、以下几种数据等效:
int、signed、signed int、long、signed long、signed long int、__int32
3、以下几种数据等效:
unsigned、unsigned int、unsigned long、unsigned long int
4、以下几种数据等效:
short、signed short、signed short int、__int16
5、以下几种数据等效:
unsigned short、unsigned short int
6、以下几种数据等效:
__int64、long long
7、以下几种数据等效:
unsigned __int64、unsigned long long
8、以下几种数据等效:
在windows 16位中,long double是80位的类型;可是windows 32位中,double跟long double等价了,都是64位了。
9、以下几种数据等效:
__wchar_t为内置类型,在VS开发环境的项目属性页中,也可以将wchar_t设置为内置类型。
如VS2008开发环境:项目->属性->配置属性->C/C++->语言,把“将wchar_t视为内置类型”改为“是”即可。
这样设置以后,wchar_t、WCHAR等效。
二、Win32据类型的等效性
1、以下几种数据等效:
BYTE、UCHAR
2、以下几种数据等效:
INT、INT32、LONG、LONG32
3、以下几种数据等效:
DWORD、DWORD32、UINT、UINT32、ULONG、ULONG32
4、以下几种数据等效:
USHORT、WORD
5、以下几种数据等效:
INT64、LONGLONG、LONG64
6、以下几种数据等效:
DWORDLONG、DWORD64、UINT64、ULONGLONG、ULONG64
7、以下几种数据等效:
LPBYTE、PBYTE、PUCHAR
8、以下几种数据等效:
LPINT、LPLONG、PINT、PINT32、PLONG、PLONG32
9、以下几种数据等效:
LPDWORD、PDWORD、PDWORD32、PUINT、PUINT32、PULONG、PULONG32
10、以下几种数据等效:
LPWORD、PUSHORT、PWORD
11、以下几种数据等效:
PINT64、PLONGLONG、PLONG64
12、以下几种数据等效:
PDWORDLONG、PDWORD64、PUINT64、PULONGLONG、PULONG64
13、以下几种数据等效:
INT_PTR、LONG_PTR、PINT_PTR、PLONG_PTR
14、以下几种数据等效:
DWORD_PTR、PUINT_PTR、UINT_PTR、ULONG_PTR
15、以下几种数据等效:
LPCSTR、PCSTR
16、以下几种数据等效:
LPCTSTR、PCTSTR
17、以下几种数据等效:
LPSTR、PSTR
18、以下几种数据等效:
LPTSTR、PTSTR
19、以下几种数据等效:
LPCWSTR、PCWSTR
20、以下几种数据等效:
LPWSTR、PWSTR
三、基本类型与Win32数据类型的等效性
1、以下几种数据等效:
char、signed char、CHAR,__int8与char范围一致,但类型不一样。
2、以下几种数据等效:
unsigned char、BYTE、UCHAR
3、以下几种数据等效:
int、signed、signed int、long、signed long、signed long int、__int32、INT、INT32、LONG、LONG32
4、以下几种数据等效:
unsigned、unsigned int、unsigned long、unsigned long int、DWORD、DWORD32、UINT、UINT32、ULONG、ULONG32
5、以下几种数据等效:
short、signed short、signed short int、__int16
6、以下几种数据等效:
unsigned short、unsigned short int、USHORT、WORD
7、以下几种数据等效:
__int64、long long、INT64、LONGLONG、LONG64
8、以下几种数据等效:
unsigned __int64、unsigned long long、DWORDLONG、DWORD64、UINT64、ULONGLONG、ULONG64
9、以下几种数据等效:
float、FLOAT
10、以下几种数据等效:
在windows 16位中,long double是80位的类型;可是windows 32位中,double跟long double等价了,都是64位了。
11、以下几种数据等效:
__wchar_t为内置类型,在VS开发环境的项目属性页中,也可以将wchar_t设置为内置类型。
如VS2008开发环境:项目->属性->配置属性->C/C++->语言,把“将wchar_t视为内置类型”改为“是”即可。
这样设置以后,wchar_t、WCHAR等效。
12、以下几种数据等效:
LPBYTE、PBYTE、PUCHAR
13、以下几种数据等效:
LPINT、LPLONG、PINT、PINT32、PLONG、PLONG32
14、以下几种数据等效:
LPDWORD、PDWORD、PDWORD32、PUINT、PUINT32、PULONG、PULONG32
15、以下几种数据等效:
LPWORD、PUSHORT、PWORD
16、以下几种数据等效:
PINT64、PLONGLONG、PLONG64
17、以下几种数据等效:
PDWORDLONG、PDWORD64、PUINT64、PULONGLONG、PULONG64
18、以下几种数据等效:
INT_PTR、LONG_PTR、PINT_PTR、PLONG_PTR
19、以下几种数据等效:
DWORD_PTR、PUINT_PTR、UINT_PTR、ULONG_PTR
20、以下几种数据等效:
LPCSTR、PCSTR
21、以下几种数据等效:
LPCTSTR、PCTSTR
22、以下几种数据等效:
LPSTR、PSTR
23、以下几种数据等效:
LPTSTR、PTSTR
24、以下几种数据等效:
LPCWSTR、PCWSTR
25、以下几种数据等效:
LPWSTR、PWSTR