OS X上的__LP64__ - >雪豹相当于?

时间:2009-11-18 05:28:32

标签: c++ macos osx-snow-leopard

在Leopard上运行时,您可以执行以下操作:

#if __LP64__
   #pragma message ("64 bit Leopard issue")
#endif

Snow Leopard和Snow Leopard 64是什么

AND(最重要的)

我自己哪里可以找到这个答案而不必问?

2 个答案:

答案 0 :(得分:12)

__LP64__不是“Leopard 64”的缩写。它代表“longs和指针是64位”。它在SnowLeopard上的设置与Leopard完全相同。

__LP64__在Windows上不会有相同的行为,因为Windows使用不同的64位模型,其中long不是64位宽。相反,在64位窗口中,long为32位宽,long long和指针为64位宽。这通常被称为“llp64”模型。

答案 1 :(得分:7)

__LP64__是一个gcc预处理器宏,无论您构建的OS X版本是什么,无论何时构建64位数据模型都是非零的。构建64位Intel处理器时,另一个非零的宏是__x86_64__。您可以在developer.apple.com找到有关这些宏和其他宏的更多信息。

您可以为XCode项目指定部署目标,该目标将指定应用程序可以运行的最低允许操作系统版本。您可以在代码中利用此设置来有条件地启用/禁用其中的部分内容;有关详细信息,请参阅this mailing list post