19

例如,在新的 C11 标准中添加了stdalign.hthreads.h. 为什么不呢stdthreads.halign.h是为了避免与现有库和系统头文件发生冲突吗?

4

1 回答 1

13

在不同时期,选择这些名称的原因多种多样。 <stdio.h>早在 C 标准出现之前就被用作名称;该标准只是标准化了现有的做法。标<stddef.h>头是原 (C89) 委员会的发明;之所以选择它的名字,是因为它没有被使用。与<stdlib.h>. 这个名称<inttypes.h>是现有的做法,但委员会需要<stdint.h>为独立的实施服务。选择该名称<stdarg.h>以与非原型等效项平行<varargs.h>。该名称<stdbool.h>未被使用;同样,我猜<stdatomic.h>,,,,<stdalign.h><stdnoreturn.h>前缀在很大程度上是为标准保留的std(但我使用 header "stderr.h",知道我可能会如履薄冰)。至于为什么<uchar.h><threads.h>没有以std前缀结尾,我假设一些现有技术基本上没有变化。AFAIK,C2011 的基本原理尚未完成;它可能会在可用时显示更多信息。

于 2012-12-13T04:41:13.877 回答