c++常见数据类型
类 型 字节数
bool 1
char 1
wchar_t 2 (宽字符类型,存储Unicode代码值.用法wchart_t letter = L'a')
short 2
unsigned short 2 (unsigned 表示无符号,只能取非负数.unsigned short num = 123U ; //数字后面的U可加可不加)
int 4 (整形默认为int,long型需在后加L,如long lNumber = 123L; //L可加可不加)
unsigned int 4 (可简写为unsigned)
long 4 (貌似不同的编译器中不一样,有时会是8,偶也不太确定)
__int64 8
unsigned long 4
float 4
double 8
long double 8 (有些地方貌似是12)
MFC与C++对应的是
MFC类型 C++的对应类型
NULL 0
VOID void
BOOL bool
CHAR char
CCHAR char
UCHAR unsigned char
BYTE unsigned char
WCHAR wchar_t
_TCHAR wchar_t
SHORT short
WORD unsigned short
USHORT unsigned short
INT int
UINT unsigned int
LONG long
DWORD unsigned long
ULONG unsigned long
LONGLONG __int64
ULONGLONG unsigned __int64
FLOAT float
DOUBLE double
MFC指针类型
注意:据说far ,near等关键字在16位的系统上有用处,在32位上没啥用处.
数据类型 含义
LPVOID typedef void far *
LPCVOID typedef CONST void far *
PWSTR , LPWSTR __nullterminated WCHAR *
PCWSTR ,LPCSWTR __nullterminated CONST WCHAR *
PTSTR , LPTSTR LPWSTR
PCTSTR ,LPCTSTR LPCWSTR
BSTR wchar_t字符指针.原因: 1.typedef OLECHAR *BSTR 2.typedef WCHAR OLECHAR 3.typedef wchar_t WCHAR
PSTR,LPSTR __nullterminated CHAR *
PCSTR ,LPCSTR typedef __nullterminated CONST CHAR *
LPCRECT typedef RECT FAR*
HANDLE typedef void*
HFILE typedef int
规律:貌似前面加不加L都没啥区别.然后P自然就表示指针,C表示是指向常量的指针.加W表示是宽字符指针
LPTSTR 如果在unicode中表示LPWSTR,否则表示LPSTR
LPCTSTR 如果在unicode中表示LPCWSTR,否则表示LPCSTR
Windows句柄类型
HANDLE32位的无符号整数,用于标识
窗口句柄 HWND
实例句柄 HINSTANCE
光标句柄 HCURSOR
图标句柄 HICON
位图句柄 HBITMAP
菜单句柄 HMENU
设备描述句柄 HDC
钢笔句柄 HPEN
画刷句柄 HBRUSH
字体句柄 HFONT
文件句柄 HFILE
64位指针问题
define _W64 __w64
#if defined(_WIN64)
typedef __int64 INT_PTR, *PINT_PTR;
typedef unsigned __int64 UINT_PTR, *PUINT_PTR;
typedef __int64 LONG_PTR, *PLONG_PTR;
typedef unsigned __int64 ULONG_PTR, *PULONG_PTR;
#define __int3264 __int64
#else
typedef _W64 int INT_PTR, *PINT_PTR;
typedef _W64 unsigned int UINT_PTR, *PUINT_PTR;
typedef _W64 long LONG_PTR, *PLONG_PTR;
typedef _W64 unsigned long ULONG_PTR, *PULONG_PTR;
#define __int3264 __int32
#endif
typedef LONG_PTR LPARAM;
typedef LONG_PTR LRESULT;
typedef UINT_PTR WPARAM;
上面这一堆都是微软在宏中定义的.我们用的时候只要用到LPARAM ,LRESULT , WPARAM
原文:http://blog.csdn.net/weiwenhp/article/details/6746719