最近看windows程序设计 遇到的一个Unicode 字符集问题

里面提到Unicode字符集是字符的扩充因为char型字符只有8位256个字符无法表示所有字符而使用Unicode字符16位就可以表示65536个字符实际上就满足了各个国... 里面提到 Unicode 字符集是字符的扩充 因为 char型字符只有8位 256个字符无法表示所有字符 而 使用 Unicode 字符 16位 就可以表示65536个字符 实际上就满足了各个国家文字的存储需求

我想问的问题是 如果真的是这个样子 那么 在c语言编译环境中
就算没有使用 TCHAR.H头文件 _UNICODE 没被定义
或者没有使用 windows.H头文件 UNICODE 没被定义
也就是说在 c语言编译环境中 根本没有使用Unicode 字符
我依然可以使用char型数组 存储中国文字

这是该如何理解? 希望各位高手能指点一二 谢谢。
展开
 我来答
zhangsonglin_c
高粉答主

2013-11-01 · 醉心答题,欢迎关注
知道大有可为答主
回答量:3.7万
采纳率:83%
帮助的人:6994万
展开全部
16位就是两个8位,在C中用两个char表示一个UNICODE代码。只能在char数组中用,不能用于char变量。
追问
您的意思是不是说  关于char型变量只占用了1个字节 如果是在char型数组中存储中文 实际默认是按照 Unicode 字符的编码存储的 每个中文字占用了2个字节  而如果是想存储一个单独的中文文字  就必须使用一个 UNICODE字符的wchar_t变量才可以  ?
追答
用字符串数组也行。
如果仅仅是存储,int变量也是可以的。只要不小于16位就可以了。如果要对此类数据进行操作,需要相应的库函数,如果库函数中有某种类型定义,就用它了。
union{
char a[2];
int i;
} A;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式