我阅读了关于GCC的官方手册(该链接仅供参考),其中第二章1节有一个问题需要翻译,但是我对文本内容进行了翻译。该篇文章讲述了ISO C标准的两种实现:完整实现(称为符合主机环境的实现)和轻量级实现(称为符合独立环境的实现)。在每个标准实现中都存在两种环境:运行在完整实现中的主机环境和运行在轻量级实现中的独立环境。独立环境仅为操作系统内核提供库设施,而主机环境则提供所有的库设施,并通过
int main(void)
或int main(int, char *[])
函数启动。此外,自C99以来,轻量级实现只需提供<float.h>
、<limits.h>
、<stdarg.h>
和<stddef.h>
库设施,自AMD1以来也需要提供<iso646.h>
库设施。自C11以来,还需要提供<stdbool.h>
、<stdint.h>
和<stdalign.h>
库设施。对于轻量级实现,不需要提供在C99中添加的复杂类型。因此,操作系统内核通常处于轻型环境中,而使用操作系统设施的程序则处于主机环境中。