【发布时间】:2012-03-29 18:27:12
【问题描述】:
很抱歉提出非常基本的问题。我想在#ifdef 指令中设置 OR 条件。? 怎么做 ? 我试过了
#ifdef LINUX | ANDROID
...
..
#endif
没用?正确的方法是什么?
【问题讨论】:
-
如果您也在 C 条件句中使用
|表示“或”,那么您做错了。 -
因此访问 SO 以了解如何正确地做到这一点。
很抱歉提出非常基本的问题。我想在#ifdef 指令中设置 OR 条件。? 怎么做 ? 我试过了
#ifdef LINUX | ANDROID
...
..
#endif
没用?正确的方法是什么?
【问题讨论】:
| 表示“或”,那么您做错了。
#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
【讨论】:
像这样
#if defined(LINUX) || defined(ANDROID)
【讨论】: