如何判断当前运行的 Mac OS X 系统是 32bit 还是 64bit 机器?
问问题
290 次
3 回答
1
这取决于您所说的“64 位机器”是什么意思。根据处理器系列,大致分为三类:
- 支持一些 64 位数学运算
- 可以在 X-64 模式下运行程序(64 位寻址)
- 具有 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) == 8
64 位系统上。指针也应该如此。
于 2009-11-18T09:20:36.837 回答