如何结合 ifndef win32 和 ifndef iOS
How to combine ifndef win32 with ifndef iOS
我有一个 C++ 代码部分,我想将其从构建中排除 iOS。
我应该怎么做?
跟进问题:
如果我已经有一个 #ifndef WIN32
。我想结合排除 WIN32
和 iOS
是否可以做类似 #ifndef WIN32 & iOS
?
的事情
我应该如何排除我的代码在一个子句中建立在 Win32
和 iOS
之上?
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
是因为前者允许多个语句与&&
或||
链接,而后者只检查存在单个宏。
我有一个 C++ 代码部分,我想将其从构建中排除 iOS。
我应该怎么做?
跟进问题:
如果我已经有一个 #ifndef WIN32
。我想结合排除 WIN32
和 iOS
是否可以做类似 #ifndef WIN32 & iOS
?
的事情
我应该如何排除我的代码在一个子句中建立在 Win32
和 iOS
之上?
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
是因为前者允许多个语句与&&
或||
链接,而后者只检查存在单个宏。