【问题标题】:how to use #ifdef with an OR condition?如何使用带有 OR 条件的#ifdef?
【发布时间】:2012-03-29 18:27:12
【问题描述】:

很抱歉提出非常基本的问题。我想在#ifdef 指令中设置 OR 条件。? 怎么做 ? 我试过了

#ifdef LINUX | ANDROID
...
..
#endif 

没用?正确的方法是什么?

【问题讨论】:

  • 如果您也在 C 条件句中使用 | 表示“或”,那么您做错了。
  • 因此访问 SO 以了解如何正确地做到这一点。

标签: c macros


【解决方案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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-13
      • 2011-04-12
      • 2021-04-30
      • 2013-07-14
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多