是否有可能使C/ c++平台独立?

Is it possible to make C/C++ platform independent

本文关键字:平台 独立 c++ 有可能 是否      更新时间:2023-10-16

当Java通过引入JVM而实现平台独立时,为什么不能通过引入类似JVM的东西来实现C/c++平台独立呢?

Java是平台独立的,但JVM不是,JVM是平台依赖的我们必须开发编译器和解释器来实现类似JVM的东西。

C和c++是将代码转换为二进制的编译器。因此,它们是平台相关的,因为不同的平台使用不同的二进制指令集。如果两个平台使用相同的汇编语言但不同的二进制表示,那么告诉编译器生成汇编语言输出,将使平台能够将结果组装成各自的二进制。JVM就像一种可以被不同平台识别的汇编语言。每个平台用自己的方式和自己的二进制文件解释JVM。

a = b + c
mov a, R1
mov b, r2
add r1, r2 (putting results in r2)
st r2, c

它的二进制表示在不同的平台上可能不同,但a = b + c是"与机器无关的"

如果你给C写一个平台无关的描述,并让所有的平台制造商接受它,那么C也将是"平台无关的"。