在阅读各种C和C++源代码时,我遇到了两个宏__APPLE__
和__OSX__
。我在各种代码中发现大量使用__OSX__
,尤其是那些源自*BSD
系统的代码。哪个宏用C/C++封装Mac OS X特定代码
但是,有时我发现只有测试__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' – math 2015-08-11 14:26:53