1

如何判断当前运行的 Mac OS X 系统是 32bit 还是 64bit 机器?

4

3 回答 3

1

这取决于您所说的“64 位机器”是什么意思。根据处理器系列,大致分为三类:

  1. 支持一些 64 位数学运算
  2. 可以在 X-64 模式下运行程序(64 位寻址)
  3. 具有 64 位内核支持

我假设您在这里的意思是“2”,因为这与应用程序代码最相关。我相信,除非您需要在较旧的 PowerPC Mac 上运行,否则您不必担心感觉“1”。

您特别提到在 C 代码中执行此操作,这实际上没有多大意义。如果您正在编译 C 代码,您可以构建您的应用程序“胖”,使用 32 位和 64 位变体,因此在编译时使用以下命令进行检查:

#if _LP64
//64-bit stuff
#else
//32-bit stuff
#endif
于 2009-11-19T17:51:57.067 回答
0

有点讨厌,但是..

#!/bin/sh

ioreg -l -p IODeviceTree | grep EFI64
if [ $? = 0 ]
then
    echo "I am a 64bit machine!"
else 
    echo "I am a 32bit machine!"
fi

包裹在一个NSTask *task = [[NSTask alloc] init]; ...

于 2009-11-19T17:20:53.683 回答
0

我相当确定sizeof(long) == 4在 32 位系统和sizeof(long) == 864 位系统上。指针也应该如此。

于 2009-11-18T09:20:36.837 回答