这可能是个愚蠢的问题,但我一直在想这个问题.C语言(或任何其他低级语言)是否有源代码,或者编译器是"完成所有工作"的部分,包括解析?如果是的话,不同的编译器不能有不同的C语言吗?stdlib在这方面起到了什么作用?我很想知道这是怎么回事.

推荐答案

C语言不是一种软件,而是一种defined standard语言,因此人们不会说它是开源的,而是一种开放标准.

然而,有无数不同的C编译器,其中许多确实是开源的.最著名的例子是GCC's C compiler,它都在GNU General Public License (GPL)之下,这是一个开源许可证.

还有更多的 Select .例如,Watcom是开源的.开源C编译器并不短缺,但毫无疑问,最广泛的编译器是GCC,至少在非Windows世界是如此.

对于Windows,最好的 Select 可能是Watcom或GCC,使用CygwinMinGW.

C++相关问答推荐

如何避免使用相对路径包含在c中

字符数组,字符指针,在一种情况下工作,但在另一种情况下不工作?

Mise()在虚拟内存中做什么?

__VA_OPT__(,)是否可以检测后面没有任何内容的尾随逗号?

将常量转换为指针会增加.数据大小增加1000字节

在C23中使用_GENERIC实现带有右值的IS_POINTER(P)?

是否可以使用指针算法在不对齐的情况下在 struct 中相同类型的字段的连续序列之间移动?

如何仅使用软件重新初始化STM32微控制器中的USB枚举?

合并对 struct 数组进行排序

我可以创建适用于不同endian的 colored颜色 struct 吗?

如何逐位读取二进制文件?

unions 的原子成员是个好主意吗?

用C++初始化局部数组变量

分支预测和UB(未定义的行为)

使用 c 中的 write() 函数将非 ASCII 字符写入标准输出

是什么阻止编译器优化手写的 memcmp()?

clion.我无法理解 Clion 中发生的 scanf 错误

多行表达式:C 编译器如何处理换行符?

无法在线程内用 C 打印?

c 函数指针,另一种语法