二进制文件和兼容性标准信息 - C ++ / JAVA

时间:2012-07-15 09:33:35

标签: c++ binary standards portability binaryfiles

我正在阅读Wikipedia article关于JAVA和C ++之间的差异。一个区别是C ++提供“多个二进制兼容性标准”。你能解释一下这意味着什么,或暗示一个好的参考。我有一个线索,这意味着用'C ++编写的二进制文件非常便携,可以在任何操作系统或环境中使用。我想要确认和更精确。这是什么一回事呢?

如何生成二进制文件?是什么让它不便携?

谢谢和问候。

1 个答案:

答案 0 :(得分:0)

int究竟是什么意思?当调用具有2个参数的函数时 - 你是将第一个放在堆栈上还是最后一个;或者你在堆上有一个结构并指向它?您是否允许将未知数量的参数传递给函数?你怎么对待弦乐;数组?您是在堆栈,堆上还是在私有内存块中进行分配?你是否破坏了函数名(允许重载)或在源代码中使用它们作为输入?您是否在8位,16位或32位边界的结构中对齐成员?

所有这些问题(以及更多问题)对于一个二进制文件如何调用另一个问题并且答案在大多数情况下并不那么简单有很大的不同。

Java在完成二进制布局的过程中提供的内容并不多(毕竟它是一个VM),而C ++提供了极大的灵活性以适应几乎任何可以想象的需求 - 因此它“提供了二进制兼容性标准“,与Java不同(在你的例子中)