各种平台和标准库定义的数据类型一览

·       标准c++数据类型

·        

数据类型名称

字节数

取值范围

int

*

操作系统决定,即与操作系统的"字长"有关

unsigned int

*

由操作系统决定,即与操作系统的"字长"有关

__int8

1

–128 到 127

__int16

2

–32,768 到 32,767

__int32

4

–2,147,483,648 到 2,147,483,647

__int64

8

–9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

bool

1

false 或 true

char

1

–128 到 127

unsigned char

1

0 到 255

short

2

–32,768 到 32,767

unsigned short

2

0 到 65,535

long

4

–2,147,483,648 到 2,147,483,647

long long

8

–9,223,372,036,854,775,808 到 9,223,372,036,854,775,807

unsigned long

4

0 到 4,294,967,295

enum

*

由操作系统决定,即与操作系统的"字长"有关

float

4

3.4E +/- 38 (7 digits)

double

8

1.7E +/- 308 (15 digits)

long double

8

1.7E +/- 308 (15 digits)

wchar_t

2

0 到 65,535

·       Windows API 定义的数据类型

Windows数据类型

本质类型

字节数

定义过程(来历)

含义

ATOM

unsigned short

2

unsigned short→WORD→ATOM

在Atom表中,一键(16位整数)一值(一个String)为一个Atom。

BOOL

int

*

int→BOOL

逻辑变量,布尔值 (取值为 TRUE 或 FALSE)

BOOLEAN

unsigned char

1

unsigned char→BYTE→BOOLEAN

逻辑变量,布尔值 (取值为 TRUE 或 FALSE)

BYTE

unsigned char

1

unsigned char→BYTE

字节型,8位。

CALLBACK

__stdcall

调用

__stdcall→CALLBACK

回调函数的调用约定

CHAR

char

1

char→CHAR

8位Windows字符(ANSI)

COLORREF

unsigned long

4

unsigned long→DWORD→COLORREF

红,绿,蓝(RGB)值

CONST

const

关键字

const→CONST

常量

CRITICAL_SECTION

RTL_CRITICAL_SECTION结构体

?

RTL_CRITICAL_SECTION(结构)→CRITICAL_SECTION

Critical-section对象

DWORD

unsigned long

4

unsigned long→DWORD

32位无符号整数

DWORD_PTR

unsigned long

4

unsigned long→ULONG_PTR→DWORD_PTR(另有其它路径)

略……(用处挺大,不过太长了)

DWORD32

unsigned int

*

unsigned int→DWORD32

32位无符号整数

DWORD64

unsigned __int64

8

unsigned __int64→DWORD64

64位无符号整数

FLOAT

float

4

float→FLOAT

浮点数变量

HACCEL

HACCEL__结构体指针

 

由DECLARE_HANDLE(name)宏定义的指向HACCEL__结构体的指针

快捷键列表的句柄

HANDLE

void *(一个地址)

 

void *→HANDLE

对象的句柄

HBITMAP

HBITMAP__结构体指针

 

由DECLARE_HANDLE(name)宏定义的指向HBITMAP__结构体的指针

位图的句柄

HBRUSH

HBRUSH__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

画刷的句柄

HCONV

HCONV__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

动态数据交换(DDE)会话的句柄

HCONVLIST

HCONVLIST__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

动态数据交换(DDE)会话列表的句柄

HCURSOR

HICON__结构体指针

 

HICON__ *→HICON→HCURSOR

光标的句柄

HDC

HDC__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

设备上下文(DC)的句柄

HDDEDATA

HDDEDATA__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

动态数据交换数据的句柄

HDESK

HDESK__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

桌面(Desktop)的句柄

HDROP

HDROP__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

Handle to an internal drop structure.

HDWP

void *(一个地址)

 

void *→HANDLE→HDWP

Handle to a deferred window position structure.

HENHMETAFILE

HENHMETAFILE__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

增强图元文件的句柄

HFILE

int

*

int→HFILE

由OpenFile(而不是CreateFile)打开的文件的句柄.

HFONT

HFONT__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

字体的句柄

HGDIOBJ

void near *

 

void NEAR *→HGDIOBJ

GDI对象的句柄

HGLOBAL

void *(一个地址)

 

void *→HANDLE→HGLOBAL

全局内存块的句柄

HHOOK

HHOOK__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

句子(hook)的句柄

HICON

HICON__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

图标的句柄

HIMAGELIST

_IMAGELIST结构体指针

 

_IMAGELIST *→HIMAGELIST

图片列表的句柄

HIMC

HIMC__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

输入上下文的句柄

HINSTANCE

HINSTANCE__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

实例的句柄

HKEY

HKEY__结构体指针

 

由DECLARE_HANDLE(name)宏定义……(另有一条路径,一样)

注册表键的句柄

HKL

HKL__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

输入点标识符

HLOCAL

void *(一个地址)

 

void *→HANDLE→HLOCAL

本地内存块的句柄

HMENU

HMENU__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

菜单的句柄

HMETAFILE

HMETAFILE__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

图元文件的句柄

HMODULE

HINSTANCE__结构体指针

 

HINSTANCE__*→HINSTANCE→HMODULE

模块的句柄。值由模块的位置来决定。

HMONITOR

HMONITOR__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

显示器的句柄

HPALETTE

HPALETTE__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

调色板的句柄

HPEN

HPEN__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

画(线)笔的句柄

HRGN

HRGN__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

区域的句柄

HRSRC

HRSRC__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

资源的句柄

HSZ

HSZ__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

动态数据交换(DDE)字符串的句柄

HWINSTA

HWINSTA__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

窗口状态的句柄

HWND

HWND__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

窗口的句柄

INT

int

*

int→INT

32位有符号整数

INT_PTR

int(_W64 int即__w64 int)

*

_W64 int→INT_PTR,_W64就是__w64,是为了解决32位与64位编译器的兼容性而设置的关键字

用于指针运算

INT32

signed int

*

signed int→INT32

32位有符号整数

INT64

signed __int64

8

signed __int64→INT64

64位有符号整数

LANGID

unsigned short

2

unsigned short→WORD→LANGID

语言标识符

LCID

unsigned long

4

unsigned long→DWORD→LCID

Locale identifier.

LCTYPE

unsigned long

4

unsigned long→DWORD→LCTYPE

Locale information type.

LONG

long

4

long→LONG

32位有符号整数

LONG_PTR

long

4

_W64 long→LONG_PTR

用于指针运算

LONG32

signed int

*

signed int→LONG32

32位有符号整数

LONG64

__int64

8

__int64→LONG64

64位有符号整数

LONGLONG

__int64

8

__int64→LONGLONG

64位有符号整数

LPARAM

long

4

_W64 long→LONG_PTR→LPARAM

消息的参数

LPBOOL

int *

 

int→BOOL, BOOL far *→LPBOOL

BOOL类型的指针

LPBYTE

unsigned char *

 

unsigned char→BYTE,BYTE far *→LPBYTE

BYTE类型的指针

LPCOLORREF

unsigned long *

 

unsigned long→WORD,DWORD *→LPCOLORREF

颜色值的指针

LPCRITICAL_SECTION

RTL_CRITICAL_SECTION结构体指针

 

RTL_CRITICAL_SECTION *PRTL_CRITICAL_SECTION→,PRTL_CRITICAL_SECTION→LPCRITICAL_SECTION

CRITICAL_SECTION的指针

LPCSTR

静态char *

 

char→CHAR,CONST CHAR *→LPCSTR

静态8位Windows字符(ANSI)无终结字符串指针

LPCTSTR

静态wchar_t *

 

wchar_t→WCHAR,CONST WCHAR *→LPCWSTR,LPCWSTR→LPCTSTR

如果UNICODE已定义则为LPCWSTR,否则为LPCTSTR

LPCVOID

静态void *

 

CONST void far *→LPCVOID

任何类型的静态指针

LPCWSTR

静态wchar_t *

 

wchar_t→WCHAR,CONST WCHAR *→LPCWSTR

静态16位Windows字符(Unicode)无终结字符串指针

LPDWORD

unsigned long *

 

unsigned long→DWORD,DWORD far *→LPDWORD

DWORD的指针

LPHANDLE

指向句柄的指针

 

void *→HANDLE,HANDLE FAR *→LPHANDLE

HANDLE的指针

LPINT

int *

 

int far *→LPINT

INT的指针

LPLONG

long *

 

long far *→LPLONG

LONG的指针

LPSTR

char *

 

char→CHAR,CHAR *→LPSTR

8位Windows字符(ANSI)无终结字符串指针

LPTSTR

wchar_t *

 

wchar_t WCHAR,WCHAR *→LPWSTR,LPWSTR→LPTSTR

An LPWSTR if UNICODE is defined, an LPSTR otherwise.

LPVOID

void *

 

void far *→LPVOID

任何类型的指针

LPWORD

unsigned short *

 

unsigned short→WORD,WORD far *→LPWORD

WORD的指针

LPWSTR

wchar_t *

 

wchar_t→WCHAR,WCHAR *→LPWSTR

16位Windows字符(ANSI)无终结字符串指针

LRESULT

long

4

_W64 long→LONG_PTR→LRESULT

有符号的消息处理结果

LUID

LUID结构

 

 

局部唯一标识符

PBOOL

int *

 

int→BOOL,BOOL near *→PBOOL

BOOL的指针

PBOOLEAN

unsigned char *

 

unsigned char→BYTE→BOOLEAN,BOOLEAN *→PBOOLEAN

BOOL的指针

PBYTE

unsigned char *

 

unsigned char→BYTE,BYTE near *→PBYTE

BYTE的指针

PCHAR

char *

 

char→CHAR,CHAR *→PCHAR

CHAR的指针

PCRITICAL_SECTION

RTL_CRITICAL_SECTION结构体指针

 

RTL_CRITICAL_SECTION *→PRTL_CRITICAL_SECTION,PRTL_CRITICAL_SECTION→PCRITICAL_SECTION

CRITICAL_SECTION的指针

PCSTR

静态char *

 

char→CHAR,CONST CHAR *→PCSTR

静态8位Windows字符(ANSI)无终结字符串指针

PCTSTR

静态wchar_t *

 

wchar_t→WCHAR,CONST WCHAR *→LPCWSTR,LPCWSTR→PCTSTR

如果UNICODE已定义则为PCWSTR,否则为PCSTR

PCWCH

静态wchar_t *

 

wchar_t→WCHAR,CONST WCHAR *→PCWCH

WCHAR的静态指针

PCWSTR

静态wchar_t *

 

wchar_t→WCHAR,CONST WCHAR *→PCWSTR

静态16位Windows字符(Unicode)无终结字符串指针

PDWORD

unsigned long *

 

unsigned long→DWORD,DWORD near *→PDWORD

DWORD的指针

PFLOAT

float *

 

float→FLOAT,FLOAT *→PFLOAT

FLOAT的指针

PHANDLE

指向句柄的指针

 

void *→HANDLE,HANDLE *→PHANDLE

HANDLE的指针

PHKEY

指向HKEY的指针

 

HKEY__ *→HKEY *→PHKEY

HKEY的指针

PINT

int *

 

int near *→PINT

INT的指针

PLCID

unsigned long *

 

unsigned long→DWORD,DWORD near *→PDWORD→PLCID

LCID的指针

PLONG

long *

 

long→LONG,LONG *→PLONG

LONG的指针

PLUID

LUID结构体指针

 

LUID *→PLUID

LUID的指针

POINTER_32

void *

 

void *→POINTER_32

32位指针(详解略)

POINTER_64

void *

 

void *→POINTER_64

64位指针(详解略)

PSHORT

short *

 

short→SHORT,SHORT *→PSHORT

SHORT的指针

PSTR

char *

 

char→CHAR,CHAR *→PSTR

8位Windows字符(ANSI)无终结字符串指针

PTBYTE

wchar_t *

 

wchar_t→WCHAR,WCHAR *→PTBYTE

TBYTE的指针

PTCHAR

wchar_t *

 

wchar_t→WCHAR,WCHAR *→PTCHAR

TCHAR的指针

PTSTR

wchar_t *

 

wchar_t→WCHAR,WCHAR *→LPWSTR→PTSTR

PWSTR if UNICODE is defined, a PSTR otherwise.

PTBYTE

wchar_t *

 

wchar_t→WCHAR,WCHAR *→PTBYTE

TBYTE的指针

PTCHAR

wchar_t *

 

wchar_t→WCHAR,WCHAR *→PTCHAR

TCHAR的指针

PTSTR

wchar_t *

 

wchar_t→WCHAR,WCHAR *→LPWSTR→PTSTR

A PWSTR if UNICODE is defined, a PSTR otherwise.

PUCHAR

unsigned char *

 

unsigned char→UCHAR,UCHAR *→PUCHAR

UCHAR的指针

PUINT

unsigned int *

 

unsigned int *→PUINT(呵呵,为什么不用UINT*来定义呢?)

UINT的指针

PULONG

unsigned long *

 

unsigned long→ULONG,ULONG *→PULONG

ULONG的指针

PUSHORT

unsigned short *

 

unsigned short→USHORT,USHORT *→PUSHORT

USHORT的指针

PVOID

void *

 

void *→PVOID

任何类型的指针

PWCHAR

wchar_t *

 

wchar_t→WCHAR,WCHAR *→PWCHAR

WCHAR的指针

PWORD

unsigned short *

 

unsigned short→WORD,WORD near *→PWORD

WORD的指针

PWSTR

wchar_t *

 

wchar_t→WCHAR,WCHAR *→PWSTR

16位Windows字符(Unicode)无终结字符串指针

REGSAM

unsigned long

 

unsigned long→DWORD→ACCESS_MASK→REGSAM

注册表值的安全访问掩码

SC_HANDLE

SC_HANDLE__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

Handle to a service control manager database.

SC_LOCK

void *

 

void far *→LPVOID→SC_LOCK

Handle to a service control manager database lock.

SERVICE_STATUS_HANDLE

SERVICE_STATUS_HANDLE__结构体指针

 

由DECLARE_HANDLE(name)宏定义……

Handle to a service status value.

SHORT

short

2

short→SHORT

短整数类型(16位)

SIZE_T

unsigned long

4

unsigned long→ULONG_PTR→SIZE_T

指针可指向的最大字节数

SSIZE_T

long

 

_W64 long→LONG_PTR→SSIZE_T

有符号SIZE_T.

TBYTE

wchar_t

2

wchar_t→WCHAR,WCHAR→TBYTE

如果UNICODE已定义则为WCHAR,否则为CHAR

TCHAR

wchar_t

2

wchar_t→WCHAR,WCHAR→TCHAR

如果UNICODE已定义则为WCHAR,否则为CHAR

UCHAR

unsigned char

1

unsigned char→UCHAR

无符号CHAR

UINT

unsigned int

*

unsigned int→UINT

无符号INT

UINT_PTR

unsigned int

*

unsigned int→UINT_PTR

无符号INT_PTR.

UINT32

unsigned int

2

unsigned int→UINT32

无符号INT32.

UINT64

unsigned __int64

4

unsigned __int64→UINT64

无符号INT64.

ULONG

unsigned long

4

unsigned long→ULONG

无符号LONG.

ULONG_PTR

unsigned long

4

unsigned long→ULONG_PTR

无符号LONG_PTR.

ULONG32

unsigned int

2

unsigned int→ULONG32

无符号LONG32

ULONG64

unsigned __int64

4

unsigned __int64→ULONG64

无符号LONG64

ULONGLONG

unsigned __int64

4

unsigned __int64→ULONGLONG

64位无符号整数

UNSIGNED

没查到,大家帮忙吧

 

 

无符号属性

USHORT

unsigned short

 

unsigned short→USHORT

无符号SHORT类型

VOID

void

 

void→VOID

任何类型

WCHAR

wchar_t

2

wchar_t→WCHAR

16位Unicode字符

WINAPI

__stdcall

调用

__stdcall→WINAPI

系统函数(API函数)调用约定

WORD

unsigned short

2

unsigned short→WORD

16位无符号整数

WPARAM

unsigned int

*

unsigned int→UINT_PTR→WPARAM

·       MFC定义的数据类型

数据类型

意义

FAR

对应于far

NEAR

对应于near

CONST

对应于const

UINT

32位无符号整型,对应于unsigned int

BYTE

8位无符号整型,对应于unsigned char

WORD

16位无符号整型,对应于unsigned short int

DWORD

32位无符号长整型,对应于unsigned long int

SHORT

短整型

LONG

32位长整型,对应于long

LONGLONG

64位长整型

FLOAT

浮点型,对应于float

BOOL

Boolean值(TRUE or FALSE即1 或 0)

CHAR

Windows字符

VOID

任意类型

BSTR

32位字符指针

LPCSTR

32位字符串指针,指向一个常数字符串

LPSTR

32位字符串指针

LPCTSTR

32位字符串指针,指向一个常数字符串,用于移植到Unicode集

LPTSTR

32位字符串指针,用于移植到Unicode集

LPVOID

32位指针,指向一个未定义类型的数据

LPARAM

32位消息参数,作为窗口函数或回调函数(call back)的参数

LPRESULT

32位数值,作为窗口函数或回调函数的返回值

WPARAM

16位或32位数值,作为窗口函数或回调函数的参数

COLORREF

32位数值,代表一个颜色值

PROC

指向回调函数的指针

WNDPROC

32位指针,指向一个窗口函数

HANDLE

对象句柄,其他还有HPEN、HWND、HCURSOR、HDC、HFILE等

LPCRECT

32位指针,指向一个RECT结构的常量

POSITION

一个数值,代表collection对象(例如数组或链表)中的元素位置,常使用于MFC collection classes

猜你喜欢

转载自blog.csdn.net/pengzp/article/details/6592786