繁体   English   中英

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

[英]Why is it called 'wchar_t' and not simply 'wchar'?

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

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

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

例如,有time_twchar_tuint32_tsize_tptrdiff_tdiv_t等。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM