【问题标题】:C: Ternary operator giving error when leaving one expression empty [duplicate]C:将一个表达式留空时三元运算符给出错误[重复]
【发布时间】:2013-02-08 19:48:44
【问题描述】:

我正在尝试使用一些利用三元语句的代码来运行特定部分,但是,当我这样做时,我收到了警告:

expression result unused

并且该特定部分中的代码无法运行。

本例代码为:

i != a ?: printf("|%*s\\\n", i, "");

为什么会这样?根据here,这种形式的三元运算符(在这种情况下没有替代方案)应该起作用,但是,它在这里简单地跳过它。任何帮助表示赞赏。

【问题讨论】:

  • 为什么在一个部分为空的情况下使用三元组?这不是一个简单的 if 语句吗?
  • 你想做什么,混淆你的代码?

标签: c


【解决方案1】:

你的代码相当于

(i != a) ? (i != a) : printf(...);

请注意,您最终不会使用i != a 结果,因此会出现警告。最好把它写成if 声明:

if(i==a) printf(...);

【讨论】:

  • 谢谢,但是是否有某种形式的三元语句相当于: i != a ? printf(...) : printf(...) ?
  • 呃,那三元语句。
猜你喜欢
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 1970-01-01
  • 2021-04-24
  • 2021-10-06
相关资源
最近更新 更多