char16_t
char16_t
在头文件 | | (自C11以来) |
---|---|---|
typedef uint_least16_t char16_t; | | (自C11以来) |
在头文件<stdint.h>中定义 | | |
typedef / *实现定义* / uint_least16_t; | | (自C99以来) |
char16_t是用于16位宽字符的无符号整数类型,与uint_least16_t类型相同。
uint_least16_t是宽度至少为16位的最小无符号整数类型。
注意
在任何给定的平台上,char16_t类型的宽度可以大于16位,但是存储在char16_t类型的对象中的实际值将总是具有16位的宽度。
例
#include <uchar.h>
#include <stdio.h>
int main(void)
{
char16_t wcs[] = u"zß水?"; // or "z\u00df\u6c34\U0001f34c"
size_t wcs_sz = sizeof wcs / sizeof *wcs;
printf("%zu UTF-16 code units: [ ", wcs_sz
for (size_t n = 0; n < wcs_sz; ++n) printf("%#x ", wcs[n]
printf("]\n"
}
可能的输出:
6 UTF-16 code units: [ 0x7a 0xdf 0x6c34 0xd83c 0xdf4c 0 ]
参考
- C11标准(ISO / IEC 9899:2011):
扩展内容
| char16_t的C ++文档 |
|:----|