Abh*_*rma 5 c assembly operating-system cross-platform
C语言最终被编译成机器特定的汇编语言。那么如果每个处理器都有自己的汇编语言语法,C 怎么能跨平台呢?如果我用 C 编写操作系统内核,那么如何让它在各种处理器上运行?
Bal*_*arq 11
C 在源代码级别是可移植的。这意味着您可以在选择的平台上重新编译您的程序并让您的应用程序在那里运行。
例如,您可以在 wikipedia 中找到C的历史。当时,编程是针对每台特定机器在汇编中进行的,因此拥有高级(到那时)编程语言是一种福气:它加快了开发速度,还可以将程序从一台机器移植到新机器上只需移植编译器(C 编译器以后可以用 C 本身编写,再次加快移植过程,但那是另一回事了)。
具体来说,当在 PDP-7 和 PDP-11 中运行 UNIX 时,就出现了在操作系统之间移植 UNIX 的想法。最后,即使是 UNIX 的内核也是用 C 重写的,因此它使操作系统非常受欢迎,因为它易于移植:只需要为内核的特定部分编写少量汇编代码,就可以让 UNIX 运行起来并且很快就会在新机器上运行,至少与当时的其他操作系统相比是这样。
C 语言本身是跨平台的,因为你不能直接在机器上运行 C 代码。C源代码被编译为汇编语言,而汇编语言是特定于平台的代码。唯一的非跨平台部分是编译器和生成的程序集。
实质上,您可以使用相同的 C 代码和不同的编译器来创建所需的特定程序集。由于您使用相同的 C 源代码,因此它被认为是跨平台的。