我知道它size_t
的_t
后缀是 alias/ typedef
。但是我不明白是什么原因char16_t
,char32_t
并且wchar_t
包含_t
后缀。
问问题
165 次
1 回答
5
对于wchar_t
:
在 C++ 中,
wchar_t
是一个独特的基本类型(因此它没有在<cwchar>
任何其他头文件中定义)。在 C 中,这是一个整数类型的 typedef。
对于char16_t
和char32_t
,在<cuchar>
/uchar.c
中定义:
在 C 中,这个头文件定义了两个宏:
char16_t
和char32_t
,它们映射到适当大小的无符号整数类型(分别与uint_least16_t
和相同uint_least32_t
)。在 C++ 中,
char16_t
和char32_t
是基本类型(因此这个头文件没有在 C++ 中定义这样的宏)。
因此,在这两种情况下,即使它们是 C++ 中的基本类型,它们也保持_t
与 C 的兼容性,它们是 typedef 或宏。
于 2018-03-13T11:06:55.013 回答