如何检查我的应用程序是用 32 位还是 64 位编译的?
这有助于调试低级代码(例如使用缓冲区)。
编译时检查将涉及#ifdef
'ing for __LP64__
,这是 ARM 的数据类型大小标准。运行时解决方案将涉及检查指针的大小,如下所示:
if (sizeof(void*) == 4) {
// Executing in a 32-bit environment
} else if (sizeof(void*) == 8) {
// Executing in a 64-bit environment
}
值得庆幸的是,指针大小是编译 64 位代码的不同标准似乎一致同意的一件事。
#ifdef __LP64__
NSLog(@"64-bit\t");
#else
NSLog(@"32-bit\t");
#endif
您可以检查指针的大小。我认为在 32 位上它是 4 字节,而在 64 上它应该是 8。
if( sizeof(void*) == 4 ) then 32bit else 64bit