这可能是一个愚蠢的问题,但我一直在想这个问题有一段时间了。C语言(或任何其他低级语言)是否有源代码,或者编译器是“完成所有工作”的部分,包括解析?如果是这样的话,不同的编译器不能有不同的C方言吗?stdlib的因素是什么呢?我真的很想知道这是如何工作的。
发布于 2011-02-24 09:29:44
C语言不是一个软件,而是一个defined standard,所以人们不会说它是开源的,而是说它是一个开放的标准。
然而,C语言有无数不同的编译器,其中许多确实是开源的。最著名的例子是GCC's C compiler,它完全遵循GNU General Public License (GPL),这是一个开源许可证。
还有更多的选择。例如,Watcom是开源的。开源C编译器并不缺乏,但毫无疑问,使用最广泛的是GCC,至少在非Windows世界中是这样。
发布于 2011-02-24 09:29:57
C是一个标准,它规定了C编译器应该如何生成程序。
C本身没有任何源代码,就像音符没有任何塑料一样。
一些C编译器,如GCC,是开源的。
发布于 2011-02-24 09:31:59
C语言只是一种语言,也是一种标准化的语言。它在很大程度上是编译器“完成了所有的工作”。不同的编译器确实有不同的方言;在C99 ANSI标准之前,你有像Borland C和其他竞争编译器这样的东西,它们以自己奇妙的方式实现了C语言。
stdlib
只是任何ANSI实现中都必须存在的标准库的公认集合。
https://stackoverflow.com/questions/5099384
复制相似问题