【问题标题】:Can complex logical expressions be used in #ifdef in C++?C++的#ifdef中可以使用复杂的逻辑表达式吗?
【发布时间】:2016-03-17 09:04:48
【问题描述】:

我发现可以通过这种方式使用命令#if defined(STUFF) 组合多个#ifdefs:

#if defined(_BLA1) || defined(_BLA2)

#if defined(_BLA1) && defined(_BLA2)

但是我可以使用括号来组合更精细的定义吗,例如:

#if (defined(_BLA1) || defined(_BLA2)) && (defined(_BLA3) || defined(_BLA4))

?

【问题讨论】:

  • 询问编译器,而不是堆栈溢出。
  • @YSC 我不太确定。仅仅因为某些事情被认为是简单的,并不意味着它在这里不受欢迎。您使用编译器观察到的内容与标准所保证的内容之间存在很大差异(诚然,这使得当前的答案很糟糕)。提问者显然不得不停下来思考这个问题,来到这里寻找答案并没有找到答案,所以试图在这里扩展有用的知识。然而,我也不能完全赞成它,因为它似乎应该可以通过搜索(SO 或 Google)来回答。

标签: c++ conditional-compilation


【解决方案1】:

是的,它工作正常。我已经在使用 LLVM 编译器的 Xcode 中对其进行了测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 2013-09-20
    • 2015-03-26
    相关资源
    最近更新 更多