最近看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型数组 存储中国文字
这是该如何理解? 希望各位高手能指点一二 谢谢。 展开
我想问的问题是 如果真的是这个样子 那么 在c语言编译环境中
就算没有使用 TCHAR.H头文件 _UNICODE 没被定义
或者没有使用 windows.H头文件 UNICODE 没被定义
也就是说在 c语言编译环境中 根本没有使用Unicode 字符
我依然可以使用char型数组 存储中国文字
这是该如何理解? 希望各位高手能指点一二 谢谢。 展开
1个回答
展开全部
16位就是两个8位,在C中用两个char表示一个UNICODE代码。只能在char数组中用,不能用于char变量。
追问
您的意思是不是说 关于char型变量只占用了1个字节 如果是在char型数组中存储中文 实际默认是按照 Unicode 字符的编码存储的 每个中文字占用了2个字节 而如果是想存储一个单独的中文文字 就必须使用一个 UNICODE字符的wchar_t变量才可以 ?
追答
用字符串数组也行。
如果仅仅是存储,int变量也是可以的。只要不小于16位就可以了。如果要对此类数据进行操作,需要相应的库函数,如果库函数中有某种类型定义,就用它了。
union{
char a[2];
int i;
} A;
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询