分类 | 范围 | 字节 | 备注 | |||
简单类型 | 序数 | 整数 | Integer | -2147483648 .. 2147483647 | 4 | 有符号32位 |
Cardinal | 0 .. 4294967295 | 4 | 无符号32位 | |||
Shortint | -128 .. 127 | 1 | 有符号8位 | |||
Smallint | -32768 .. 32767 | 2 | 有符号16位 | |||
Longint | -2147483648 .. 2147483647 | 4 | 有符号32位 | |||
Int64 | -263 .. 263 | 8 | 有符号64位 | |||
Byte | 0 .. 255 | 1 | 无符号8位 | |||
Word | 0 .. 65535 | 2 | 无符号16位 | |||
Longword | 0 .. 4294967295 | 4 | 无符号32位 | |||
字符 | AnsiChar(Char) | ANSI字符集 | 8位 | |||
WideChar | Unicode字符集 | 16位 | ||||
布尔 | Boolean | False < True Ord(False) = 0 Ord(True) = 1 Succ(False) = True Pred(True) = False | 1 | |||
ByteBool | False <> True Ord(False) = 0 Ord(True) <> 0 Succ(False) = True Pred(False) = True | 1 | ||||
WordBool | 2 | |||||
LongBool | 4 | |||||
枚举 | ||||||
子界 | ||||||
实数 | Real | 5.0×10-324 .. 1.7×10308 | 8 | [精度]15..16 | ||
Real48 | 2.9×10-39 .. 1.7×1038 | 6 | [精度]11..12; 向后兼容 | |||
Single | 1.5×10-45 .. 3.4×1038 | 4 | [精度]7..8 | |||
Double | 5.0×10-324 .. 1.7×10308 | 8 | [精度]15..16 | |||
Extended | 3.6×10-4951 .. 1.1×104932 | 10 | [精度]19..20 | |||
Comp | -263 + 1 .. 263 - 1 | 8 | [精度]19..20 | |||
Currency | -922337203685477.5808 .. 922337203685477.5807 | 8 | [精度]19..20 | |||
字符串 | ShortString | 255个字符 | 2..256B | 向后兼容 | ||
AnsiString | 大约 231 个字符 | 4B..2GB | 8位(ANSI)字符 | |||
WideString | 大约 230 个字符 | 4B..2GB | 多用户服务和 多语言应用程序; 和com定义的BSTR兼容 | |||
其他 | String String[0..255] PChar PAnsiString PWideString | |||||
结构类型 | 集合 | Set | 最多256个元素[0..255] | |||
数组 | 静态数组 | |||||
动态数组 | ||||||
记录 | Record | |||||
文件 | File | |||||
类 | Class | |||||
类引用 | Class reference | |||||
接口 | Interface | |||||
指针类型 | 无类型指针 | Pointer | ||||
有类型指针 | 预定义类型指针 | PAnsiString PString PByteArray PCurrency PDouble PExtended PSingle PInteger POleVariant PShortString PTextBuf PVarRec PVariant PWideString PWordArray | ||||
过程类型 | 程序过程类型 | Procedural | ||||
对象过程类型 | Procedural | |||||
变体类型 | Variant | |||||
OleVariant |
来源:http://www.cnblogs.com/del/archive/2007/12/04/982167.html
VC数据类型
字符类型:
---------------------------------------------------
标识符 实际类型 意义
CHAR char 8位Windows(ANSI)字符。
CCHAR char 8位Windows(ANSI)字符。
PSZ char* 一个以"NULL"结束的Windows字符串的指针
PCHAR CHAR* 一个CHAR型指针
PSTR CHAR* 一个以"NULL"结尾的8位Windows(ANSI)字符串指针
LPSTR CHAR* 一个以"NULL"结尾的8位WINDOWS(ANSI)字符串指针
NPSTR CHAR* 一个以"NULL"结尾的8位WINDOWS(ANSI)字符串指针
PCSTR CONST CHAR* 一个以"NULL"结尾的8位WINDOWS(ANSI)字符串常量指针
LPCSTR CONST CHAR* 一个以"NULL"结尾的8位WINDOWS(ANSI)字符串常量指针
WCHAR wchar_t 16位Unicode字符
PWCH WCHAR* 一个WCHAR型指针
PWCHAR WCHAR* 一个WCHAR型指针
PWSTR WCHAR* 一个以"NULL"结尾的16位Unicode字符串指针
LPWSTR WCHAR FAR* 一个以"NULL"结尾的16位Unicode字符串指针
NWPSTR WCHAR* 一个以"NULL"结尾的16位Unicode字符串指针
PCWCH CONST WCHAR* 一个WCHAR型常量指针
LPCWCH CONST WCHAR FAR* 一个WCHAR型常量指针
PCWSTR CONST WCHAR* 一个以"NULL"结束的16位Unicode字符串常量指针
LPCWSTR CONST WCHAR FAR* 一个以"NULL"结尾的16位Unicode字符串常量指针
TCHAR WCHAR(或char) 兼容型字符(Unicode中为WCHAR型,Windows中为CHAR型)
PTCHAR WCHAR*(或char) 一个TCHAR型指针
PTCH LPWSTR(或LPSTR) Unicode中为LPWSTR型,Windows中为LPSTR型
LPTCH LPWSTR(或LPSTR) Unicode中为LPWSTR型,Windows中为LPSTR型
PTSTR LPWSTR(或LPSTR) Unicode中为LPWSTR型,Windows中为LPSTR型
LPTSTR LPWSTR(或LPSTR) Unicode中为LPWSTR型,Windows中为LPSTR型
PCTSTR PCWSTR(或PCSTR) Unicode中为PCWSTR型,Windows中为PCSTR型
LPCTSTR LPCWSTR(或LPCSTR) Unicode中为LPCWSTR型,Windows中为LPCSTR型
UCHAR unsigned char 无符号字符型
PUCHAR UCHAR* 一个UCHAR型指针
BSTR OLECHAR* 32位字符指针(不推荐使用)
OLECHAR wchar_t Unicode字符类型(用于对象链接与嵌入的数据类型,如嵌入Word文档)
LPOLESTR OLECHAR* 一个OLECHAR型指针
LPCOLESTR const OLECHAR* 指向OLECHAR类型的字符串常量指针
---------------------------------------------------
数值类:
---------------------------------------------------
标识符 实际类型 意义
BYTE unsigned char 8位无符号整数
PBYTE BYTE near* 一个BYTE型指针
LPBYTE BYTE far* 一个BYTE型指针
TBYTE WCHAR(或unsigned char) Unicode中为WCHAR型,Windows中为unsigned char型
PTBYTE WCHAR*(或unsigned char*) 一个TBYTE型指针
BOOL int 布尔变量,其值为(TRUE或FALSE)
PBOOL BOOL near* 一个BOOL型指针
LPBOOL BOOL far* 一个BOOL型指针
BOOLEAN BYTE 布尔变量,其值为(TRUE或FALSE)
PBOOLEAN BOOLEAN* 一个BOOLEAN型指针
SHORT short 16位短整数(有符号)
PSHORT SHORT* 一个SHORT型指针
USHORT unsigned short 无符号短整型
PUSHORT USHORT* 一个USHORT型指针
INT int 32位符号整数
INT32 32位符号整数
INT64 64位符号整数
INT_PTR Signed integral type for pointer precision.Use when casting a pointer to an integer to perform pointer arithmetic.
PINT INT near* 一个INT型指针
LPINT INT far* 一个INT型指针
UINT unsigned int 无符号的整型
UINT32 无符号的INT32型
UINT64 无符号的INT64型
UINT_PTR 无符号的INT_PTR型
PUINT UINT* 一个UINT型指针
LONG long 32位符号整数
LONG32 32位符号整数
LONG64 64位符号整数
LONGLONG __int64(或double) 64位符号整数
LONG_PTR Signed long type for pointer precision.Use when casting a pointer to a long to perform pointer arithmetic.
PLONG LONG near* 一个LONG型指针
LPLONG LONG far* 一个LONG型指针
PLONGLONG LONGLONG* 一个LONGLONG型指针
ULONG unsigned long 无符号的LONG型
ULONG32 无符号的LONG32型
ULONG64 无符号的LONG64型
ULONGLONG unsigned __int64(或double) 64位无符号整型
ULONG_PTR 无符号的LONG_PTR型
PULONG ULONG* 一个ULONG型指针
PULONGLONG ULONGLONG* 一个ULONGLONG型指针
WORD unsigned short 16位无符号整型
PWORD WORD near* 一个WORD型指针
LPWORD WORD far* 一个WORD型指针
DWORD unsigned long 32位无符号整数
DWORD32 32位无符号整型
DWORD64 64位无符号整型
DWORD_PTR Unsigned long type for pointer precision.Use when casting a pointer to a long type to perform pointer arithmetic.(Also commonly used for general 32-bit parameters that have been extended to 64 bits in 64-bit Windows.
PDWORD DWORD near* 一个DWORD型指针
LPDWORD DWORD far* 一个DWORD型指针
FLOAT float 浮点变量
PFLOAT FLOAT near* 一个FLOAT型指针
---------------------------------------------------
句柄类:
---------------------------------------------------
标识符 实际类型 意义
HANDLE void* 对象句柄(32位无符号整数)
PHANDLE HANDLE NEAR* 一个HANDLE型指针
SPHANDLE HANDLE NEAR* 一个HANDLE型指针
LPHANDLE HANDLE FAR* 一个HANDLE型指针
GLOBALHANDLE HANDLE 一个全局句柄
HDC HANDLE 设备描述表(DC)句柄
HBITMAP HANDLE 位图句柄
HBRUSH HANDLE 画刷句柄
HICON HANDLE 图标句柄
HCURSOR HICON 光标句柄
HPALETTE HANDLE 调色板句柄
HPEN HANDLE 画笔句柄
HCONV 动态数据交换(DDE)会话句柄
HACCEL HANDLE 加速键表句柄
HCONVLIST DDE会话列表句柄
HDDEDATA DDE数据句柄
HDESK HANDLE 桌面句柄
HDLG 对话框句柄
HDROP 一个internal drop structure句柄。
HDWP 延期窗口位置结构句柄
HENHMETAFILE HANDLE 增强图元文件句柄
HFILE int或short 文件句柄,用于函数OpenFile,不是CreateFile
HFONT HANDLE 字体句柄
HGDIOBJ HANDLE(void NEAR*) GDI对象句柄
HGLOBAL HANDLE 全局内存块句柄
HHOOK HANDLE 钩子句柄
HIMAGELIST 映像列表句柄
HIMC 输入描述表句柄
HINSTANCE HANDLE 实例句柄(32位无符号整数)
HKEY 登记关键字句柄
HKL HANDLE Input locale identifier.
HLOCAL HANDLE 局部内存块句柄
HMEMU 菜单句柄
HMETAFILE HANDLE 图元文件句柄
HMIDIIN MIDI输入文件句柄(MIDI:乐器的数字化接口)
HMIDIOUT MIDI输出文件句柄(MIDI:乐器的数字化接口)
HMMIO 文件句柄
HMODULE HINSTANCE 一个程序模块的句柄。其值为该模块的启始地址。
HMONITOR HANDLE 显示监视器句柄
HRGN HANDLE 域句柄
HRSRC HANDLE 资源句柄
HSZ DDE字符串句柄
HWAVEIN 波形输入文件句柄
HWAVEOUT 波形输出文件句柄
LPHWAVEIN 一个HWAVEIN型指针
LPHWAVEOUT 一个WAVEOUT型指针
HWINSTA HANDLE 工作站句柄
HWND HANDLE 窗口句柄(32位无符号整数)
LOCALHANDLE HANDLE
SC_HANDLE 服务控制管理数据库(service control manager database)句柄
SC_LOCK 绑定服务控制管理数据库(service control manager database)句柄
SERVICE_STATUS_HANDLE 服务状态值句柄
---------------------------------------------------
函数指针类:
---------------------------------------------------
标识符 意义
MFENUMPROC 该回调函数枚举元文件记录
ENUMFENUMPROC 该回调函数枚举增强的元文件记录
ENUMRESLANGPROC 该回调函数枚举资源语言。
ENUMRESNAMEPROC 该回调函数枚举资源名称。
ENUMRESTYPEPROC 该回调函数枚举资源类型。
FONTENUMPROC 该回调函数枚举字体
GOBJENUMPROC 该回调函数枚举图形设备接口(GDI)对象
HOOKPROC 钩子过程函数指针
LPCCHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPCFHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPFRHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPOFNHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPPRINTHOOKPROC 指向一个应用程序定义的钩子函数的指针
LPSETUPHOOKPROC 指向一个应用程序定义的钩子函数的指针
FARPROC 指向一个长回调函数的指针
DLGPROC 指向一个对话框过程的指针
LINEDDAPROC 指向一个回调函数的指针,该回调函数处理行坐标
LOHANDLER_FUNCTION 指向一个处理程序函数的指针
PROPENUMPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举窗口特征
PFNCALLBACK 指向一个回调函数的指针
PHANDLER_ROUTINE 指向一个处理程序的指针
TIMERPROC 指向一个应用程序定义的定时器回调函数的指针
WNDENUMPROC 指向一个应用程序定义的回调函数的指针,该回调函数枚举窗口
WNDPROC 32-bit,指向一个应用程序定义的窗口过程的指针
YIELDPROC 指向一个输出回调函数的指针
---------------------------------------------------
其他类:
---------------------------------------------------
标识符 实际类型 意义
ATOM WORD 原子(原子表中的一个字符串的参考)
CALLBACK 回调函数的定义标识
LPRESULT 作为窗口函数或callback函数的返回值(32位数值)
LRESULT LONG 消息处理的符号结果
COLORREF DWORD 由红、绿、蓝(RGB)组成的彩色值(32位数值)
WINAPI APIENTRY 系统函数调用协议标识。
WPARAM UINT 消息参数
LPARAM LONG 消息参数,32-bit数值,作为窗口函数或callback函数的一个参数
CRITICAL_SECTION 临界段对象。
LPCRITICAL_SECTION 一个临界段对象的指针(CRITICAL_SECTION)
CTRYID 国名标识符。
FMORDER 32位字体映射值的数组
LANGID WORD 语言标识符
LCID DWORD 所在国标识符
PLCID PDWORD 一个LCID型指针
LCTYPE 所在国类型
LPCOLORREF DWORD* 一个COLORREF型指针
MCIDEVICEID 媒体控制接口(MCI)设备标识符
MMRESULT 多媒体消息的处理结果
PCRITICAL_SECTION 指向一个临界段对象(CRITICAL_SECTION)的指针
PHKEY 一个HKEY型指针
POINTER_32 32位指针。在32位系统中,是一个普通指针。在64位系统中,是一个去除了高字节的64位指针。
POINTER_64 64位指针。在64位系统中,是一个普通指针。在32位系统中,是被扩展了符号的32位指针。
PSID PVOID 指向一个加密标识符(SID)的指针
REGSAM 登记关键字的加密掩码
SIZE_T unsigned int The maximum number of bytes to which a pointer can point.Use for a count that must span the full range of a pointer.
SSIZE_T 带符号的SIZE_T型
UNSIGNED Unsigned attribute.
---------------------------------------------------
结构类:
---------------------------------------------------
标识符 实际类型 意义
LPCRECT const RECT FAR* RECT结构常量指针(32位)
LPCRECTL const RECTL FAR* RECTL结构常量指针(32位)
LUID LUID结构。局部唯一的标识符(Locally unique identifier)
PLUID LUID* 一个LUID型指针
---------------------------------------------------
空类:
---------------------------------------------------
标识符 实际类型 意义
CONST const 常量
VOID void 任何类型
PVOID void near* 一个指向任何类型的指针
LPVOID void far* 一个void型远指针
LPCVOID CONST void far* 一个指向任何类型的常量指针
---------------------------------------------------
文章出处:DIY部落(http://www.diybl.com/course/3_program/vc/vc_js/20071119/86887_2.html)