如何结合 ifndef win32 和 ifndef iOS

How to combine ifndef win32 with ifndef iOS

我有一个 C++ 代码部分,我想将其从构建中排除 iOS。

我应该怎么做?

跟进问题:
如果我已经有一个 #ifndef WIN32。我想结合排除 WIN32iOS 是否可以做类似 #ifndef WIN32 & iOS?
的事情 我应该如何排除我的代码在一个子句中建立在 Win32iOS 之上?

PS:
我看到很多帖子解释如何 #ifndef 出 iOS 但我如何将它与 #ifndef WIN32 结合起来才是问题所在。

要排除您的代码在 WIN32 和 iOS 上构建,您需要使用 #if/#endif 而不是 #ifndef/#endif。如果您还没有定义一个宏来检测 iOS 的编译,那么看看这个 answer。否则,可以像这样来防止它:

#if !defined(WIN32) && !defined(YOUR_IOS_MACRO_HERE)
// Your code here
#endif // !defined(WIN32) && !defined(YOUR_IOS_MACRO_HERE)

之所以使用#if而不是#ifndef是因为前者允许多个语句与&&||链接,而后者只检查存在单个宏。