cpp中wchar_t、TCHAR、_T(““)、LPCTSTR、LPTSTR

先说是什么:

wchar_t是unicode下的字符类型;

TCHAR在unicode下表示wchar_t,否则就是ANSI编码表示char;

_T("")同时支持unicode和ANSI字符串;

LPCTSTR 是常量字符串指针。

LPTSTR 是字符串指针。

解释

用char存储字符时,英文占用一个字节,中文占两个字节。假如一串字符串中同时有英文字符和中文字符,从中任选两个字节,这是两个英文字符,还是一个中文字符?unicode 编码就是为了解决这个问题。unicode不管中文英文都用两个字节表示,数据类型名为wchar_t(typedef定义)。

TCHAR(typedef定义)是为了同时支持unicode和ANSI编码,这个宏当项目定义为 unicode 时表示 wchar_t,否则表示 char。

_T("")是一个宏,用来表示字符串,例如 _T("abc") 在项目为 unicode 时表示 L"str",否则ANSI表示 "str"。宏定义如下:

#define _T(x)       __T(x)
#define __T(x)      L ## x

LPCTSTR即:Long Pointer Const TCHAR STRing。其中TCHAR即上面解释的。

Long指针是为了兼容Windows  3.1等16位操作系统遗留下来的,在win32中以及其他的32为操作系统中,  long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。

摘自博客园https://www.cnblogs.com/xietianjiao/p/6096584.html

LPTSTR没有C(const)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值