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

binary file and compatibility standard information - C++ / JAVA

本文关键字:C++ JAVA 信息 标准 二进制文件      更新时间:2023-10-16

我正在阅读维基百科上关于JAVA和C++之间差异的文章。一个区别是C++提供了"多种二进制兼容性标准"。你能解释一下这意味着什么吗,或者暗示一个好的参考。我有一个线索,这意味着用C++编写的二进制文件是非常可移植的,可以在任何操作系统或环境中使用。我希望得到确认和更精确。这是怎么回事?

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

谢谢和问候。

int到底是什么意思?当调用一个有两个参数的函数时,你是把第一个参数放在堆栈的第一个还是最后一个;或者你在堆上有一个结构并指向它?是否允许将未知数量的参数传递到函数中?你如何处理琴弦;阵列?您是在堆栈、堆上还是在专用内存块中进行分配?您是篡改函数名(以允许重载)还是在源代码中使用它们作为输入?是否在8位、16位或32位边界上对齐结构中的成员?

所有这些问题(以及更多的问题)都对一个二进制调用另一个二进制的方式产生了很大的影响,而且大多数时候答案并不是那么简单。

Java在二进制布局的具体实现方式方面没有提供太多(毕竟它是一个虚拟机),而C++提供了极大的灵活性来满足几乎任何可以想象的需求,因此它"提供了二进制兼容性标准",而不像Java(在您的示例中)