wchar_t数据类型如何工作?

时间:2014-05-10 11:56:17

标签: c++ c user-defined-types

我知道它不是内置数据类型。在c ++中,我知道我们可以创建一个看起来和行为几乎与基本数据类型相似的数据类型。但在C中,我并不了解它的工作方式与基本数据类型相似。

3 个答案:

答案 0 :(得分:0)

C ++ 11和C11标准都将wchar_t识别为"宽字符"标准数据类型。

C11标准定义了7.19 / 2中wchar_t的语义:

  

类型是[...]和
  wchar_t
  这是一个整数类型,其值范围可以表示支持的语言环境中指定的最大扩展字符集的所有成员的不同代码; null字符的代码值为零。基本字符集的每个成员   当用作整数中的单个字符时,其代码值应等于其值   如果实现没有定义,则为字符常量   __STDC_MB_MIGHT_NEQ_WC__

虽然C ++ 11标准在3.9.1 / 5中说:

  

类型wchar_t是一种不同的类型,其值可以表示最大的所有成员的不同代码   在受支持的语言环境(22.3.1)中指定的扩展字符集。类型wchar_t应具有相同的   大小,符号和对齐要求(3.11)作为其他整数类型之一,称为其基础   类型。 [...]

答案 1 :(得分:0)

在C中,wchar_t<stddef.h>中定义的整数类型的typedef(可能还有其他标题)。

参见标准,第7.17节(http://port70.net/~nsz/c/c99/n1256.html#7.17

  

wchar_t是一个整数类型,其值范围可以表示支持的语言环境中指定的最大扩展字符集的所有成员的不同代码; null字符的代码值为零。

答案 2 :(得分:0)

I know it is not a standard data type

是的,它的标准(在<stddef.h>中描述)

  

wchar_t的       积分类型,其值范围可以表示最大字符集的所有成员的不同宽字符代码   在编译环境支持的语言环境中指定:   null字符的代码值为0,每个成员都有   便携式字符集的代码值与使用时的值相等   作为整数字符常量中的唯一字符。

But in C I don't understand how it works similar to basic data type.

使用wchar.h标题

的功能和宏