The GNU C Library和The Standard C Library有什么区别

2026年09月24日 11:29
有2个网友回答
网友(1):

简单来说stdc是一个概括,gnuc是在这个概括上面一个分支。
再比如说stdc是一个规则,gnuc是在这个规则为基础延伸或者扩展的一个规则。
总结来说stdc包括gnuc,gnuc只是一个小类。
用专业术语来解释,stdc是一个语言标准,gnuc是在stdc基础上扩展的另外一个标准。
举例:
一个断句可能会有助于理解,也就是"C标准库"更接近于"C标准"所规定"库",那么"GNU C库"也就成了"GNU C"所实现的库,所以我觉得最重要的区别就是一个是规定,一个是实现。
standard c是一个标准,等于ANSI C(又分为c89,c99,c11)。它只是一个标准,无关乎实现,而且很显然不存在一个对任何硬件平台和操作系统都适用的实现。它通过定义一组头文件来提供基本的API。任何声称自己是符合C标准的编译器都必须提供这些头文件,以及文件中所规定的API。
GNU C是一个标准的实现和扩展,更准确一点说是在类unix操作系统上的一个实现和扩展,它既实现了c标准规定的API,又基于操作系统的系统调用提供了符合其他标准的另外一些API(也是头文件的形式),例如POSIX。同时它本身也是一个标准,同样是因为有各种不同的平台和OS,不可能有一个一致的实现。

网友(2):

stdc 是一个语言的标准,gnuc 是在 stdc 基础上扩展的某一个标准。

标准库一般是针对特定编译器而言的,也就是这个编译器缺省提供的库。对 gnu c 来说,自然这个标准库就是 gnu c 库。每个编译器提供的标准库可能不同。但他们可能都包含 stdc 这个子集。