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

Cog*_*eel 24 c c++ terminology

我经常想知道为什么C++的名字wchar_t不是简单的wchar,而且我从来没有找到答案.搜索引擎没有帮助,因为他们认为我在询问Windows的WCHAR类型.有任何想法吗?

Nem*_*vic 32

这是来自C的遗产,其中wchar_t是a typedef,并且typedef在C标准库中有后缀.

  • 如果我记得那是一条双向的街道,C从C++导入了函数原型 (3认同)

Mic*_*urr 11

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

例如,有time_t,wchar_t,uint32_t,size_t,ptrdiff_t,div_t,等.

(无论如何)我感兴趣的是C标准不保留该形式的名称.C标准确实表明将来以" str"," mem"和一些其他前缀开头的名称可能会添加到标准中,但对于以" _t" 结尾的名称不会这样做- 除了名称以" int"或" uint" 开头并以" " 结尾_t可能会<stdint.h>在将来添加.但是,POSIX会保留所有以" _t" 结尾的名称.


Hen*_*man 5

我认为这是C和C++成长的"阶段".人们觉得需要一些新的类型,但添加新的关键词总是存在争议.一些代码已经在使用wchar,代码将会少用wchar_t.请注意,size_t并且diff_t属于同一时代.