char16_t
来自cppreference.com
| 在标头 <uchar.h> 定义
|
||
| |
(C11 起) | |
char16_t 是用于 16 位宽字符的无符号整数类型,与 uint_least16_t 为同一类型。
注意
任何给定平台上,经由 uint_least16_t 的定义,类型 char16_t 的宽度可能大于 16 位,但存储于 char16_t 类型对象中的实际值将始终拥有 16 位宽度。
示例
运行此代码
#include <stdio.h>
#include <uchar.h>
int main(void)
{
const char16_t wcs[] = u"zß水🍌"; // 即 "z\u00df\u6c34\U0001f34c"
const size_t wcs_sz = sizeof wcs / sizeof *wcs;
printf("%zu 个 UTF-16 码元:[ ", wcs_sz);
for (size_t n = 0; n < wcs_sz; ++n)
printf("%#x ", wcs[n]);
printf("]\n");
}
可能的输出:
6 个 UTF-16 码元:[ 0x7a 0xdf 0x6c34 0xd83c 0xdf4c 0 ]
引用
- C17 标准(ISO/IEC 9899:2018):
- 7.28 Unicode utilities <uchar.h> (第 292 页)
- 7.20.1.2 Minimum-width integer types (第 212-213 页)
- C11 标准(ISO/IEC 9899:2011):
- 7.28 Unicode utilities <uchar.h> (第 398 页)
- 7.20.1.2 Minimum-width integer types (第 290 页)
- C99 标准(ISO/IEC 9899:1999):
- 7.18.1.2 Minimum-width integer types (第 256 页)
参阅
基础类型的 C++ 文档
|