2012-07-15 66 views
2

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

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

感谢和问候。

+1

编译的C++程序在不同的操作系统和不同的硬件之间不是很便携,这是肯定的。可移植的C++源代码可以针对不同的平台进行编译,并以相同的方式处理它们。至于这篇文章,它写得含糊不清。我不知道微软,安腾和GNU是如何标准的。他们是完全不同的事情开始。 – 2012-07-15 09:49:56

回答

0

int究竟是什么意思?当用2个参数调用一个函数时 - 你是把第一个函数放在堆栈上还是最后一个;或者你有堆结构并指向它?你是否允许将未知数量的参数传递给函数?你如何对待字符串;数组?你是在堆栈,堆或私有内存块中分配吗?你是否打乱函数名称(以允许重载)或将它们用作源代码中的输入?你是否在8位,16位或32位边界的结构中对齐成员?

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

Java在提供二进制布局(毕竟它是一个虚拟机)方面并没有提供太多的东西,而C++提供了很大的灵活性来适应几乎所有可以想象的需求 - 因此它“提供了二进制兼容性标准“,不像Java(在你的例子中)

+0

我不认为这个答案解决了这个问题。 – 2012-07-15 09:46:58

+0

好吧,不能帮助原始问题编辑后记:( – YePhIcK 2012-07-15 09:56:55

+0

编辑并没有改变任何重要的东西 – 2012-07-15 10:05:20