gpt4 book ai didi

C++ char16_t 的大小取决于什么?

转载 作者:IT老高 更新时间:2023-10-28 23:14:18 24 4
gpt4 key购买 nike

这也与 char32_t 和任何 intXX_t 有关。规范指出:

2.14.3.2:

The value of a char16_t literal containing a single c-char is equal to its ISO 10646 code point value, provided that the code point is representable with a single 16-bit code unit.

5.3.3.1:

[..] in particular [..] sizeof(char16_t), sizeof(char32_t), and sizeof(wchar_t) are implementation-defined

我看不到关于 intXX_t 类型的任何信息,除了它们是“可选”(18.4.1) 的注释。

如果 char16_t 不保证为 2 字节,是否保证为 16 位(即使在 1 字节!= 8 位的架构上)?

最佳答案

3.9.1 基本类型 [basic.fundamental]

Types char16_t and char32_t denote distinct types with the same size, signedness, and alignment as uint_least16_t and uint_least32_t, respectively, in , called the underlying types.

这意味着 char16_t 至少为 16 位(但可能更大)

但我也相信:

The value of a char16_t literal containing a single c-char is equal to its ISO 10646 code point value, provided that the code point is representable with a single 16-bit code unit.

提供相同的保证(尽管不太明确(因为您必须知道 ISO 10646 是 UCS(注意 UCS 兼容但与 Unicode 不完全相同))。

关于C++ char16_t 的大小取决于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6440812/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com