关于WCHAR

在<WCHAR.h>头文件中有定义
typedef unsigned short wchar_t;
就是 wide character type 的意思

在 美国资讯交换标准码(ASCII: American Standard Code for Information Interchange)
开发过程中 为了节约成本(排除8位, 当时每位元的存储空间成本很昂贵) 最终由美国国家标准协会发布了7位版本的方案 记录在ANSI X3.4-1986 中
该标准在美国及拉丁字母国家使用方便 但在远东 西欧南部 会遇到拉丁字母中不存在的字母
比如俄语(斯拉夫) 希腊语 希伯来语 阿拉伯语 以及 汉字 日语 韩语
为了解决的字符集不同的恶心问题(内码转换) 诞生了Unicode字元集 它比ASCII多了一倍空间

这个wchar_t 就是Unicode对应的资料结构 它是16位的 可以装得下汉字哦
wchar_t *p = L"ooxx!"; 这个L告诉编译器, 把字母扩展为宽字元
你也会见到 _T(ooxx) 或者 TEXT(之类的写法) 他们都是为了让你的代码能在美欧以外运行

#ifdef UNICODE               //UNICODE版
    #define __T(x) L##x    //这##字符串连接符 你应该知道滴
#else                               //ASCII版
    #define __T(x) (x)
#endif
#define _T(x)  __T(x)
#define _TEXT(x)  __T(x)
因此他们都是一样的

在windows的编程中 更普遍的写法是用WCHAR取代wchar_t
因为符合微软的命名规则 当然你如果喜欢Linux的话...
typedef char CHAR
typedef wchar_t WCHAR

如果你的代码是国际版本(多语言版)
你也可以用TCHAR.. 它是一个依赖识别字的宏 可以是char 也可以是wchar_t
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值