1

我知道它size_t_t后缀是 alias/ typedef。但是我不明白是什么原因char16_tchar32_t并且wchar_t包含_t后缀。

4

1 回答 1

5

对于wchar_t

在 C++ 中,wchar_t是一个独特的基本类型(因此它没有在<cwchar>任何其他头文件中定义)。

在 C 中,这是一个整数类型的 typedef。

对于char16_tchar32_t,在<cuchar>/uchar.c中定义:

在 C 中,这个头文件定义了两个宏:char16_tchar32_t,它们映射到适当大小的无符号整数类型(分别与uint_least16_t和相同uint_least32_t)。

在 C++ 中,char16_tchar32_t是基本类型(因此这个头文件没有在 C++ 中定义这样的宏)。

因此,在这两种情况下,即使它们是 C++ 中的基本类型,它们也保持_t与 C 的兼容性,它们是 typedef 或宏。

于 2018-03-13T11:06:55.013 回答