C

char32_t

char32_t

在头文件中定义(自C11以来)
typedef uint_least32_t char32_t;(自C11以来)
typedef / *实现定义* / uint_least32_t;(自C99以来)

char32_t是用于32位宽字符的无符号整数类型,与uint_least32_t类型相同。

uint_least32_t是宽度至少为32位的最小无符号整数类型。

注意

在任何给定的平台上,char32_t类型的宽度可以大于32位,但存储在char32_t类型的对象中的实际值将总是具有32位的宽度。

#include <uchar.h> #include <stdio.h> int main(void) { char32_t wc[] = U"zß水?"; // or "z\u00df\u6c34\U0001f34c" size_t wc_sz = sizeof wc / sizeof *wc; printf("%zu UTF-32 code units: [ ", wc_sz for (size_t n = 0; n < wc_sz; ++n) printf("%#x ", wc[n] printf("]\n" }

可能的输出:

5 UTF-32 code units: [ 0x7a 0xdf 0x6c34 0x1f34c 0 ]

参考

  • C11标准(ISO / IEC 9899:2011):

扩展内容

| char32_t的C ++文档 |

|:----|