为什么它被称为'wchar_t'而不仅仅是'wchar'?

时间:2009-09-21 21:02:06

标签: c++ c terminology

我经常想知道为什么C ++的名称为wchar_t,而不仅仅是wchar,我从来没有找到答案。搜索引擎没有帮助,因为他们认为我问的是Windows {WCHAR类型。有什么想法吗?

3 个答案:

答案 0 :(得分:32)

这是来自C的遗产,其中wchar_ttypedef,而typedef在C标准库中具有该后缀。

答案 1 :(得分:11)

C标准库对库中定义的许多类型使用_t后缀(而不是作为关键字附加到C本身的类型)。

例如,有time_twchar_tuint32_tsize_tptrdiff_tdiv_t等。

感兴趣(无论如何)是C标准不为自己保留该表格的名称。 C标准确实表明将来以“str”,“mem”以及一些其他前缀开头的名称可能会添加到标准中,但它不会对以“_t”结尾的名称 - 除了以“int”或“uint”开头且以“_t”结尾的名称可能会添加到{{1 }} 在将来。但是,POSIX会保留所有以“<stdint.h>”结尾的名称。

答案 2 :(得分:5)

我认为这是C和C ++成长过程中的“阶段”。人们觉得需要一些新的类型,但添加新的关键词总是存在争议。有些代码已经使用wchar,使用wchar_t的代码要少得多。请注意,size_tdiff_t属于同一时代。