【发布时间】:2019-08-27 11:16:52
【问题描述】:
我想用布尔表达式 + 短路评估打印一条消息(我不允许使用 if/while/for ),但在 C-Lion 中一切正常,但在其他编译器中显示:
hw2q1.c: In function 'decision':
hw2q1.c:38:55: error: value computed is not used [-Werror=unused-value]
|
^
S
我该如何解决这个警告?
我在 C-Lion 中尝试过,但似乎没有出现任何问题。
void decision(int DragonA,int DragonB,int DragonC) {
(DragonA == 1 && print_dragonX_sent('A') ) ||
(DragonB == 1 && print_dragonX_sent('B') ) ||
(DragonC == 1 && print_dragonX_sent('C') ) ||
(print_no_dragon());
}
【问题讨论】:
-
你正在用你的表达式计算一个布尔值,但你没有使用它。鉴于表达式有副作用,我不确定它是否应该归类为错误,但至少值得警告。
-
我猜如果你只对副作用感兴趣而不是整个表达式的值,你可以通过将整个东西转换成
void来消除警告 -
@PaulOgilvie 我该如何解决这个警告?
-
EugeneSh 为您提供了解决方案。将整个表达式转换为
void。 -
像@EugeneSh 一样。建议:强制转换为 void,即
(void) ((Dra....)