Defined in header <uchar.h> | ||
---|---|---|
typedef uint_least32_t char32_t; | (since C11) | |
Defined in header <stdint.h> | ||
typedef /*implementation-defined*/ uint_least32_t; | (since C99) |
char32_t
is an unsigned integer type used for 32-bit wide characters and is the same type as uint_least32_t
.
uint_least32_t
is the smallest unsigned integer type with width of at least 32 bits.
On any given platform, the width of type char32_t
can be greater than 32 bits, but the actual values stored in an object of type char32_t
will always have a width of 32 bits.
#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"); }
Possible output:
5 UTF-32 code units: [ 0x7a 0xdf 0x6c34 0x1f34c 0 ]
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/c/string/multibyte/char32_t