假设我定义了一个宏,并且在if else语句中使用了该宏
#include <iostream>
#define LOG(x) {if (x) std::cout << "What is up" << std::endl;}
int main(void) {
if (true)
LOG(true);
else
false;
return 0;
}
现在这是一个棘手的案例,我意识到,取决于缩进,“ else”应该与哪个“ if”一起使用可能会有一些歧义。
我想出了这个灵魂
(some_condition) ? dosomething() : true;
这解决了问题,但是我不确定拥有真实陈述会产生什么影响。这是一个好的解决方案,还是有更好的方法?
编辑:这是我使用的代码,它不起作用。看看你能解决这个问题吗?
您应该通过以下方式定义宏:
#define LOG(X) do { if (some_condition) dosomething(); } while (0)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句