【发布时间】:2016-07-03 06:10:47
【问题描述】:
如果我有一个像 HelloWorld 这样用 C++ 编写的简单程序,然后我在 32 位和 64 位机器上编译它,我会得到两个不同的二进制文件,但它们是不同的机器代码,只有 32 位二进制文件会能够在 32 位或 64 位机器上运行。
在这两种情况下我都没有任何好处,因为源代码是相同的,而且它们的作用相同。这让我觉得一些为 32 位编写的 Linux 发行版的所有软件包都可以移植到 64 位机器上,而无需做任何更改。那么,我得到什么?有什么好处吗?
是否有任何 C/C++ 代码示例,我可以在 64 位中执行一些我在 32 位中无法执行的代码?
例如,Google Chrome 目前不支持 32 位,但不支持 64 位。可能是什么原因?
【问题讨论】:
-
@JamesRoot 在 64 位中越界访问
-
每天我都面临着由于多种原因无法将成熟的大型应用程序移植到 64 位的痛苦。与您的“Hello world”程序不同,该程序包含大约 50 万行代码,编写时间为 10 年。您认为代码可以简单地“移植到 64 位”而没有任何后果的假设是不正确的。
-
Chrome 仅在其中一个上受支持的原因是,Google 不必费心确保它们都能正常工作。
-
Is there any example of code in C/C++ that I can do some in 64-bit that I can't do in 32-bit?不。所有的计算机体系结构都是图灵完备的,只要有足够的时间和内存,就可以做任何其他图灵完备的系统可以做的事情
标签: c++ c native 32bit-64bit