char32_t
在头文件<uchar.h>中定义 | | (自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):
- 7.28 Unicode实用程序<uchar.h>(p:398)
- 7.20.1.2最小宽度整数类型(p:290)
- C99标准(ISO / IEC 9899:1999):
- 7.18.1.2最小宽度整数类型(p:256)
扩展内容
| char32_t的C ++文档 |
|:----|
本文档系腾讯云开发者社区成员共同维护,如有问题请联系 cloudcommunity@tencent.com