在<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
关于WCHAR
最新推荐文章于 2024-05-26 05:15:00 发布