-2

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

expression result unused

并且该特定部分中的代码不会运行。

这种情况下的代码是:

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

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

4

1 回答 1

2

您的代码相当于

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

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

if(i==a) printf(...);
于 2013-02-23T04:12:29.673 回答