我认为您可以添加代码,只有在同时声明2个术语的情况下才会执行:
#ifdef X
#ifdef Y
//code to execute
#endif
#endif
我想知道是否有一种方法可以在至少声明了X或者Y(考虑异或)的情况下执行代码,类似于以下内容:
#ifdef X or #ifdef Y
// code
#endif
?
使用 defined
:
#if defined(X) || defined(Y)
defined(X)
将扩展为整数1或0,因此在这里任何与整数类型一起使用的运算符都可以工作。您甚至可以执行 #if defined(X) + defined(Y)
以获得“或”效果。 - Rapptzoperator||
:#if defined(X) || defined(Y)
#if defined(X) || defined(Y)
...
#endif
你需要说:
#if defined(X) || defined(Y)
以下两个表单是等价的:
#ifdef identifier
#if defined identifier
#if defined X || defined Y
,但不要忘记endif
。 - Grijesh Chauhan