这个问题涉及需要在 POSIX/SUS 标准的所需标头中定义的各种类型。
某些类型需要在许多头文件中定义,我想知道实现这一点的正确且合规的方法是什么。
例如,查看<time.h>
标头规范:
包含标头可能会使 <signal.h> 标头中的所有符号可见。
这很简单,<signal.h>
包含在<time.h>
.
现在怎么样:
clock_t、size_t、time_t、clockid_t和 timer_t类型应按照 <sys/types.h> 中的描述进行定义。
据我了解,这意味着我们不能简单地包含<sys/types.h>
from <time.h>
,因为这会暴露比所需更多的符号。
那么任何人都可以证实这一点吗?
包括在内会违反标准合规性<sys/types.h>
吗?
如果是这样,我认为最好的解决方案是为每种类型创建一个特定的标头,以便可以从任何地方使特定类型可见,而不必担心其他符号。
有没有其他好的解决方案?
最后一件事,C 标准中的类型呢?
POSIX/SUS 规范中的许多类型都是整数类型,可能需要具有固定宽度。
那么标准是否可以<stdint.h>
从特定标题中包含,还是会破坏合规性?