我知道它size_t的_t后缀是 alias/ typedef。但是我不明白是什么原因char16_t,char32_t并且wchar_t包含_t后缀。
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 回答