64-bit - 如何以编程方式检测 64 位或 32 位机器?

标签 64-bit 32bit-64bit 32-bit

我不明白32位和64位是什么意思。人们似乎都说 64 位计算机运行速度更快 - 但为什么呢?这是否意味着有 64 位整数而不是 32 位整数?如果是这样的话,有没有办法编写一个程序来确定我们是在 32 位还是 64 位机器上?

最佳答案

在 64 位机器上,指针为 8 个字节(64 位)。在 32 位机器上,它们是 4 个字节(32 位)。因此,我们可以通过指针的大小来确定我们正在处理的内容,以最简单的形式:

#define IS_64BIT (sizeof(void *) == 8)

唯一的缺点是在 32 位模式下运行的 64 位计算机将注册为 32 位。当然,这实际上并不重要,因为无论出于何种目的,64 位计算机上的 32 位操作系统都将是 32 位计算机。

关于64-bit - 如何以编程方式检测 64 位或 32 位机器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5928218/

相关文章:

windows-7 - Windows 7 64 位上的 Sybase ASE 15.x ODBC 驱动程序

android - 有没有人在 64 位 Windows 7 上成功使用 64 位 Eclipse for Android 2.3 dev?

c# - 是否可以为 Visual Studio 2010 编写 Debugger Visualizer 来显示 64 位 .NET 程序?

python - 在 Mac OS X Lion 上的 Eclipse PyDev 中将 python 作为 32 位进程运行

c - 在 32 位机器上使用 48 位

c++ - 如何使用注册表中的 CurrentVersion\Run 键为特定用户自动启动程序?

c - 在 64 位系统上,如何将 int 作为 void * 传递

c++ - QMake 为 32 位构建使用了错误的目录

c++ - 32位系统读取4GB文件的方法

c# - 使用 C# 或 Java 创建 32 位 DLL