gpt4 book ai didi

c - char16_t 和 char32_t 到底是什么,我在哪里可以找到它们?

转载 作者:行者123 更新时间:2023-12-03 21:22:25 24 4
gpt4 key购买 nike

我在找 char16_tchar32_t ,因为我使用的是 Unicode,所以我在网络上只能找到它们在里面 uchar.h .我在 iOS SDK(不是 macOS 的,出于某种原因)中发现了上述标题,但其中没有这样的类型。不过,我在不同的标题中看到了它们,但是我找不到它们的定义位置。此外,互联网上的信息充其量是稀缺的,所以我有点迷失在这里;但我确实读过 wchar_t不应该用于 Unicode,这正是我到目前为止所做的,所以请帮助:(

最佳答案

char16_tchar32_t在 C 标准中指定。 (以下引文来自 2018 年标准。)
根据条款 7.28,标题 <uchar.h>将它们声明为分别用于 16 位和 32 位字符的无符号整数类型。您不必在任何其他标题中寻找它们; #include <uchar.h>应该足够了。
同样根据第 7.28 条,这些类型中的每一种都是具有所需位数的最窄无符号整数类型。 (例如,在仅支持 8、18、24、36 和 50 位无符号整数的实现上,char16_t 必须是 18 位大小;它不能是 24,而 char32_t 将必须是 36。)
根据条款 6.4.5,当字符串文字以 u 为前缀时或 U ,如 u"abc"U"abc" ,它是一个宽字符串文字,其中元素的类型为 char16_tchar32_t , 分别。
根据条款 6.10.8.2,如果 C 实现定义了预处理器宏 __STDC_UTF_16__成为 1 , 表示 char16_t值是 UTF-16 编码的。同样,__STDC_UTF_32__表示 char32_t值是 UTF-32 编码的。在没有这些宏的情况下,不会对编码做出任何断言。

关于c - char16_t 和 char32_t 到底是什么,我在哪里可以找到它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52240592/

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