为什么类型关键字以“_t”后缀结尾?

Poe*_*odu 1 c++ types naming suffix

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

jde*_*esa 5

对于wchar_t

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

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

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

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

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

因此,在这两种情况下,即使它们是 C++ 中的基本类型,_t为了与 C 兼容,它们仍然是 typedef 或宏。