例如,在新的 C11 标准中添加了stdalign.h
和threads.h
. 为什么不呢stdthreads.h
?align.h
是为了避免与现有库和系统头文件发生冲突吗?
问问题
337 次
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 回答