是否有可能使C/ c++平台独立?
Is it possible to make C/C++ platform independent
当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也将是"平台无关的"。
相关文章:
- 如何创建独立于平台的宏来包装编译器扩展?
- 为什么C++哈希函数的返回类型是 std::size_t,而不是独立于平台的类型?
- 如何在Qt WebChannel中以独立于平台的方式在HTML/Javascript和C++之间进行通信?
- Qml:等宽/普通字体的平台独立方式
- 发行配置的无效配置参数在X64平台上独立执行
- 独立于平台的方式捕获控制台/终端关闭事件
- 最佳平台独立 pi 常数
- 如何实现独立于平台的异步文件写入
- C++:如何保存独立于平台的二进制文件
- 独立于平台的OpenSSL库
- 包括具有一个头文件和独立源文件的特定于平台的库
- 如何以尽可能独立于平台的方式从 c++ 调用 .NET
- 最易于使用、轻量级、独立于平台的图形库,用于C++
- 尽管严重依赖JVM,但Java是如何独立于平台的
- 是否可以像Java一样在VM中运行,从而使C++平台独立
- 使用Xcode制作平台独立应用
- 是c++11线程平台独立的
- 是c++ std库平台独立的
- C++/QT中的线程化多核平台独立编程
- 是否有可能使C/ c++平台独立?