[ 用户登陆 ] [ 免费注册 

分类 >> 学习资料 > 程序技术 > VC >
C语言类型范围
文 . 2008/9/22 14:59:45  最后修改:2011/10/5 2:17:35
类型长度(bit)范围
char(字符型) 8 ASCII字符
unsigned char(无符号字符型)80~255
signed char(有符号字符型) 8 -128~127
int(整型)16 -32768~32767
unsigned int(无符号整型)16 0~65535
signed int(有符号整型) 16 同int
short int(短整型) 8 -128~127
unsigned short int(无符号短整型) 80~255
signed short int(有符号短整型)8 同short int
long int(长整型) 32 -2147483648~2147483649
signed long int(有符号长整型) 32 -2147483648~2147483649
unsigned long int(无符号长整型) 32 0~4294967296
float(单精度型)32 约精确到6位数
double(双精度型)64约精确到12位数

LPSTRchar *一个32位指向字符串的指针
LPCSTRconst char *一个32位指向字符串常量的指针
LPWSTRwchar_t *一个32位指向Unicode字符串的指针
LPCWSTRconst wchar_t *一个32位指向Unicode字符串常量的指针
LPTSTR一个32位指向字符串的指针,此字符串可移植到Unicode和DBCS(DoubleCString)
LPCTSTR一个32位指向字符串常量的指针,此字符串可移植到Unicode和DBCS(DoubleCString)


L表示long指针,这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用,没有实际意义。即win32中,long,near,far指针与普通指针没有区别,LP与P是等效的。
P表示这是一个指针。
T表示_T宏,这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。
STR表示这个变量是一个字符串。
C表示是一个常量,const。

LPTSTR:
如果定义了UNICODE宏则LPTSTR被定义为LPWSTR。typedef LPTSTR LPWSTR;
否则LPTSTR被定义为LPSTR。 typedef LPTSTR LPSTR;
下面列出一些常用的typedefs:
类型   MBCS           Unicode
WCHAR wchar_t         wchar_t
LPSTR   char*           char*
LPCSTR const char*    const char*
LPWSTR wchar_t*        wchar_t*
LPCWSTR const wchar_t* const wchar_t*
TCHAR    char           wchar_t
LPTSTR TCHAR*(或char*)    TCHAR* (或wchar_t*)
LPCTSTR const TCHAR*     const TCHAR*

由于Win32 API文档的函数列表使用函数的常用名字(例如, SetWindowText"),所有的字符串都是用TCHAR来定义的。(除了XP中引入的只适用于Unicode的API)。所以结论,在VS2005系统中,为提高可移植性,定义字符串时用TCHAR,转化为UNICODE时用_T而不用L。


最近后的内容
VS2003 中配置Microsoft PlatformSDK2003
vc++实现U盘介质加密解密保障存储安全
error C2440: “static_cast”: 无法从“UINT (__thiscall CCoolControlBar::* )(CPoint)”转换为“LRESULT (__thiscall CWnd::* )(CPoint)”
error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMT.lib(new.obj) 中定义
warning C4996: 'sprintf': This function or variable may be unsafe
BOOL和bool的区别
wsprintf用法
C++命名书写规范/MFC、句柄、控件及结构的命名规范
最近前的内容
error C2440: "static_cast": 无法从"void (__thiscall CChat::* )(WPARAM,LPARAM)"转换为"LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)"
最受欢迎
C语言类型范围
error C2440: "static_cast": 无法从"void (__thiscall CChat::* )(WPARAM,LPARAM)"转换为"LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)"
C++命名书写规范/MFC、句柄、控件及结构的命名规范
VS2003 中配置Microsoft PlatformSDK2003
error C2440: “static_cast”: 无法从“UINT (__thiscall CCoolControlBar::* )(CPoint)”转换为“LRESULT (__thiscall CWnd::* )(CPoint)”
warning C4996: 'sprintf': This function or variable may be unsafe
BOOL和bool的区别
vc++实现U盘介质加密解密保障存储安全
error LNK2005: "void * __cdecl operator new(unsigned int)" (??2@YAPAXI@Z) 已经在 LIBCMT.lib(new.obj) 中定义
wsprintf用法
 ©2005 - 2008 粤ICP备12037054号-1 用户登陆  |  互联说明  |  联系我们  |  网站地图