【发布时间】:2011-01-11 02:37:51
【问题描述】:
在阅读各种 C 和 C++ 源代码时,我遇到了两个宏 __APPLE__ 和 __OSX__。我发现在各种代码中大量使用了__OSX__,尤其是那些源自*BSD 系统的代码。
但是,有时我发现仅测试 __OSX__ 是不够的,我必须使用 __APPLE__ 宏完成测试。
Porting Command Line Unix Tools to Mac OS X 指南指定了__APPLE__ 和另外的__APPLE_CC__,但没有提到__OSX__。
Porting from GCC 指南说:
- 使用
#ifdef __GNUC__包装任何 GCC 特定的代码。- 使用
#ifdef __APPLE_CC__封装任何 Mac OS X 特定的代码。
同样,没有提及__OSX__ 宏。
Mac OS X 平台和 XCode 开发环境中预定义的宏应该用于区分 C/C++ 程序中的 OSX 特定代码?
__OSX__ 宏在哪里定义?是*BSD 特定的宏吗?
【问题讨论】:
-
Qt 甚至使用了不同的定义:
Q_OS_OSX