如何使用带有 OR 条件的#ifdef?
Posted
技术标签:
【中文标题】如何使用带有 OR 条件的#ifdef?【英文标题】:how to use #ifdef with an OR condition? 【发布时间】:2012-03-29 18:27:12 【问题描述】:很抱歉提出非常基本的问题。我想在#ifdef 指令中设置 OR 条件。? 怎么做 ? 我试过了
#ifdef LINUX | android
...
..
#endif
没用?正确的方法是什么?
【问题讨论】:
如果您也在 C 条件句中使用|
表示“或”,那么您做错了。
因此访问 SO 以了解如何正确地做到这一点。
【参考方案1】:
#ifdef 中的 OR 条件
#if defined LINUX || defined ANDROID
// your code here
#endif /* LINUX || ANDROID */
或-
#if defined(LINUX) || defined(ANDROID)
// your code here
#endif /* LINUX || ANDROID */
以上两种都是一样的,你用哪一种就看你的口味了。
P.S.:#ifdef
只是#if defined
的简写形式,但不支持复杂条件。
进一步-
和:#if defined LINUX && defined ANDROID
异或:#if defined LINUX ^ defined ANDROID
【讨论】:
【参考方案2】:像这样
#if defined(LINUX) || defined(ANDROID)
【讨论】:
以上是关于如何使用带有 OR 条件的#ifdef?的主要内容,如果未能解决你的问题,请参考以下文章
预处理三剑客(宏定义,文件包含和条件编译)之第三种——条件编译。 #ifndef #ifdef
我们可以在 INI 文件中使用 #ifdef 宏,或者我们如何限制 INI 文件中写入的设置的编译?