检查应用程序是以32位还是64位构建?

时间:2013-09-27 06:17:22

标签: iphone ios

如何检查我的应用程序是以32位还是64位编译?

这有助于调试低级代码(例如使用缓冲区)。

3 个答案:

答案 0 :(得分:19)

编译时检查将涉及#ifdef __LP64__,这是ARM的数据类型大小标准。运行时解决方案将涉及检查指针的大小,如下所示:

if (sizeof(void*) == 4) {
    // Executing in a 32-bit environment
} else if (sizeof(void*) == 8) {
   // Executing in a 64-bit environment
}

值得庆幸的是,指针大小是编译64位代码的不同标准似乎同意的一件事。

答案 1 :(得分:16)

#ifdef __LP64__
    NSLog(@"64-bit\t");
#else
    NSLog(@"32-bit\t");
#endif

答案 2 :(得分:2)

您可以检查指针的大小。我认为32位是4字节,64位应该是8位。

if( sizeof(void*) == 4 ) then 32bit else 64bit