如何在使用#ifdef时添加OR条件?

299

抱歉我提出一个非常基础的问题。我想在 #ifdef 指令中设置 OR 条件。如何实现? 我已经尝试过:

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

没起作用?什么是正确的方式?


21
如果你在C语言条件语句中也使用 | 代表 "或",那么你是错误的。请注意修改。 - Jonathon Reinhart
4
因此,访问SO以找出如何正确地完成它。 - bballdave025
2个回答

606

像这样

#if defined(LINUX) || defined(ANDROID)

66

#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 的简称,但不支持复杂条件。


进一步-

  • AND: #if defined LINUX && defined ANDROID
  • XOR: #if defined LINUX ^ defined ANDROID

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接