为什么C标准库与编译器而不是os捆绑在一起?

对不起,如果这是一个天真的问题,但有一些我不能得到我的头。

为什么C标准库与不同的编译器实现(g的libstdc和clang的libc)捆绑在一起,而不是像(类UNIX)操作系统捆绑在一起,就像C标准库一样?为什么不是与C库一起维护,考虑它是它的超集?

最佳答案
基本原因是没有标准的C ABI – 每个编译器往往有自己的ABI,不同于和不兼容的其他编译器。另一方面,大多数操作系统定义了一个标准的C ABI,他们使用并提供一个标准的C库,所有C编译器支持ABI。

转载注明原文:为什么C标准库与编译器而不是os捆绑在一起? - 代码日志