【发布时间】:2021-02-25 17:16:29
【问题描述】:
为什么不是所有的标准标题都以std 前缀开头? IE。为什么是complex.h 而不是stdcomplex.h?
【问题讨论】:
-
因为没有人说他们必须 ????♂️
-
出于历史原因。第一个 C 编译器是在 1970 年代,当时还没有标准。
-
考虑内存成本 1 美元/字节,大约在 1970 年开创了简洁名称的先例。
-
标准头名称需要符合标准(6.10.2/5)中的限制,
stdcomplex.h太长了。 -
@IanAbbott: 6.10.2 5 不对标头名称施加限制。它允许 C 实现不根据
.之前的第八个字符以外的字符(或具有其他指示或以数字开头的字符)来区分标题名称。只要标题名称的前八个字符可以区分,就可以了。标准库包含长度超过 8 个字符的标头名称,stdatomic.h和stdnoreturn.h。
标签: c language-lawyer naming c11 c17