c++ - 如何结合 ifndef win32 和 ifndef iOS

标签 c++ ios ifndef

<分区>

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

我应该怎么做?

跟进问题:
如果我已经有一个 #ifndef WIN32。我想将 WIN32 的排除与 iOS 结合起来是否可以执行类似 #ifndef WIN32 & iOS 的操作?
我应该如何排除我的代码在一个子句中构建在 Win32iOS 上?

附言:
我看到很多帖子解释如何 #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++ - 如何结合 ifndef win32 和 ifndef iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47127927/

相关文章:

c++ - 何时在函数外部返回值使用 move 与复制?

c++ - 用于多个可执行文件的 CMake fixup_bundle

ios - 如何检测是否使用了英文 localizable.strings?

ios - 在平移 View 中实时检测 scrollView 位置

c - 如何在 makefile 构建中启用 "#ifndef/#endif" block ?

c++ - MPI_Comm_spawn 和 MPI_Reduce

c# - 在 C# 中使用 pinvoke 从动态链接库调用成员级函数?

ios - UITabBarController 内 UINavigationController 的 UINavigationBar 中缺少按钮的插图

C头文件#ifndef#include错误

C++两个头文件相互包含