Windows定义的关于字符串的几种类型

转载自:http://blog.csdn.net/lifeng5055/article/details/8123175


经常被这几种类型搞混淆:PSTR, PWSTR, PTSTR, PCSTR, PCWSTR, PCTSTR, LPSTR, LPWSTR, LPTSTR, LPCSTR, LPCWSTR, LPCTSTR

不过只要明白了每个字母代表什么意思,就很容易区分这种类型了。首先解释一下类型名中几个大写字母所代表的含义:

N:代表near,在16位系统中代表16位的段内地址

L:代表long(far),在16位系统中代表16位的段地址+16位的偏移地址

在32位系统中 N和L已经没有作用,只是为了向前兼容(兼容16位机器)才保留这些定义。

P:代表指针

C:代表CONST(const)

W:代表WCHAR(wchar_t)

T:代表宏_T(一个兼容的宏,用于区分是否定义了UNICODE,如果定义了UNICODE或者_UNICODE,则表示WCHAR,否则表示char)

CH:char的简写

STR:string的简写

排列顺序:[L/N][P][C][W/T][CH/STR]

所以开始提到的几种类型的关系就是:

1, 普通非常量字符串指针:PSTR, PWSTR, PTSTR

if UNICODE is defined 

PTSTR = PWSTR 

else 

PTSTR = PSTR 

2,普通常量字符串指针:PCSTR, PCWSTR, PCTSTR

if UNICODE is defined 

PCTSTR = PCWSTR 

else 

PCTSTR = PCSTR 

3,长非常量字符串指针:LPSTR, LPWSTR, LPTSTR

if UNICODE is defined 

LPTSTR = LPWSTR 

else 

LPTSTR =LPSTR 

4,长常量字符串指针:LPCSTR, LPCWSTR, LPCTSTR

if UNICODE is defined 

LPCTSTR = LPCWSTR 

else 

LPCTSTR = LPCSTR 


这样几种类型就很容易区分了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值