为什么类型关键字以"_t"后缀结尾?
Why are type keywords ended with "_t" suffix?
我知道size_t
自其别名/typedef
以来_t
后缀。但是我不明白出于什么原因char16_t
,char32_t
和wchar_t
包含_t
后缀。
对于wchar_t
:
在C++中,
wchar_t
是一种独特的基本类型(因此它没有在<cwchar>
或任何其他标头中定义)。在 C 中,这是一个整型的类型定义。
对于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++中的基本类型,它们也会保留与 C 兼容的_t
,在 C 中它们是 typedef 或宏。