MFC学习笔记01-(_T()与L的区别)

1,编码方式
ASCII编码:用来表示英文,它使用1个字节表示,其中第一位规定为0,其他7位存储数据,一共可以表示128个字符。(占用一个字节,即一个字节表示一个字符

GBK/GB2312/GB18030:表示汉字。GB2312表示简体中文,GBK 是 GB2312的扩展 ,除了兼容GB2312外,它还能显示繁体中文,还有日文的假名,GB18030表示中文,兼容GBK和GB2312。(占用两个字节,即两个字节表示一个字符

Unicode编码:包含世界上所有的字符,是一个字符集。(占用两个字节,即两个字节表示一个字符

UTF-8:是Unicode字符的实现方式之一,它使用1-4个字符表示一个符号,根据不同的符号而变化字节长度。

注:C++支持两种字符串,即常规的ANSI编码(使用”“包裹)和Unicode编码(使用L”“包裹)

2,MFC中(L字符串)表示Unicode字符串

CString s=L"Unicode";

_T(“”)是一个宏,定义于tchar.h下。

#define __T(x) L ## x
#define _T(x) __T(x)
CString s=_T("Unicode");
//CString s="Unicode";//Error
//CString需要接受TCHAR类型的参数
//当没有定义_UNICODE宏时,TCHAR = char
//当定义了_UNICODE宏时,TCHAR = wchar_t

_T和L的区别在于,L不管你是以什么方式编译,一律以UNICODE方式保存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值