我经常想知道为什么C ++的名称为wchar_t
,而不仅仅是wchar
,我从来没有找到答案。搜索引擎没有帮助,因为他们认为我问的是Windows {WCHAR
类型。有什么想法吗?
答案 0 :(得分:32)
这是来自C的遗产,其中wchar_t
是typedef
,而typedef
在C标准库中具有该后缀。
答案 1 :(得分:11)
C标准库对库中定义的许多类型使用_t
后缀(而不是作为关键字附加到C本身的类型)。
例如,有time_t
,wchar_t
,uint32_t
,size_t
,ptrdiff_t
,div_t
等。
感兴趣(无论如何)是C标准不为自己保留该表格的名称。 C标准确实表明将来以“str
”,“mem
”以及一些其他前缀开头的名称可能会添加到标准中,但它不会对以“_t
”结尾的名称 - 除了以“int
”或“uint
”开头且以“_t
”结尾的名称可能会添加到{{1 }} 在将来。但是,POSIX会保留所有以“<stdint.h>
”结尾的名称。
答案 2 :(得分:5)
我认为这是C和C ++成长过程中的“阶段”。人们觉得需要一些新的类型,但添加新的关键词总是存在争议。有些代码已经使用wchar
,使用wchar_t
的代码要少得多。请注意,size_t
和diff_t
属于同一时代。