我了解size_t
后缀为_t
后缀为typedef
。但是,我无法理解char16_t
,char32_t
和wchar_t
包含_t
后缀的原因。
答案 0 :(得分:4)
在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或宏。