C++官网参考链接:https://cplusplus.com/reference/cuchar/
头文件
Unicode字符
该头文件支持16位和32位字符,适合使用UTF-16和UTF-32进行编码。
类型
在C语言中,这个头文件定义了两个宏:char16_t和char32_t,它们映射到适当大小的无符号整数类型(分别与uint_least16_t和uint_least32_t相同)。
在C++中,char16_t和char32_t是基本类型(因此这个头文件在C++中没有定义这样的宏)。
宏
在C++中,以下宏由这个头文件定义:
Macro | description |
---|---|
__STD_UTF_16__ | If defined, values of type char16_t have UTF-16 encoding. Otherwise, the encoding of char16_t is unspecified. (In C11, the macro expands to 1 when defined) |
__STD_UTF_32__ | If defined, values of type char32_t have UTF-32 encoding. Otherwise, the encoding of char32_t is unspecified. (In C11, the macro expands to 1 when defined) |
函数
c16rtomb Convert 16-bit character to multibyte sequence (function)
c32rtomb Convert 32-bit character to multibyte sequence (function)
mbrtoc16 Convert multibyte sequence to 16-bit character (function)
mbrtoc32 Convert multibyte sequence to 32-bit character (function)
兼容性
这个头文件是由扩展为C99的技术报告首次在C中引入的,它完全支持C和C++的最新标准(均于2011年发布)。