非常教程

C参考手册

字符串 | Strings

char16_t

在头文件<uchar.h>中定义

(自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):
    • 7.28 Unicode实用程序<uchar.h>(p:398)
    • 7.20.1.2最小宽度整数类型(p:290)
  • C99标准(ISO / IEC 9899:1999):
    • 7.18.1.2最小宽度整数类型(p:256)

扩展内容

| char16_t的C ++文档 |

|:----|

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。