我可以在定义中使用三元运算符来反对使用if吗?

匿名的

假设我定义了一个宏,并且在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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以在字符串串联中使用条件三元运算符吗?

我们可以在 if 语句中使用三元运算符吗?

我可以在赋值运算符的左侧使用三元运算符吗?

我在使用三元运算符吗?

我可以在 print() 函数或常规 if-else 语句中定义一个函数,而不是在 Python 中使用三元运算符吗?

在三元运算符中使用count + 1可以吗?

ngClass可以在Angular 2中使用三元运算符吗?

在C ++流中使用三元运算符可以吗?

我可以在图像标签内使用三元运算符吗?

可以使用Java的三元/条件运算符(?:)来调用方法,而不是分配值吗?

在回声中使用三元运算符?

在 Angular 的 *ngFor 中使用三元运算符

在groupby中使用三元运算符的Python

在freemarker中使用三元运算符?

在 MySQLi 查询中使用三元运算符

在C中使用三元运算符递增

在三元运算符中使用OR

在javascript中使用三元运算符

在对象内部使用三元运算符来定义它的属性

在Perl中使用三元条件运算符有更短的方法吗?

逻辑运算符可以与PHP中的三元运算符一起使用吗

可以将“ else if”与三元运算符一起使用吗?

Ruby-是否可以在proc中使用三元运算符?

如何在嵌套对象字段上使用三元运算符来验证我的打字稿类型

我可以将三元运算符与两个分别返回void的函数一起使用吗?

Bash 可以使用三元运算符将值设置为多个变量吗?

使用三元运算符:这是合法语法吗?控制台没有告诉我

使用三元运算符来解决多个条件

如何在angularjs中使用_.map使用三元运算符