-2

特定の部分を実行するために三項ステートメントを使用するコードを使用しようとしていますが、これを行うと次の警告が表示されます。

expression result unused

そして、その特定のセクションのコードは実行されません。

この場合のコードは次のとおりです。

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

なぜでしょうか?hereによると、ケースの代替手段がないこの形式の三項演算子は機能するはずですが、ここでは単純にスキップします。どんな助けでも大歓迎です。

4

1 に答える 1

2

あなたのコードはと同等です

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

結果を使用することにはならないことに注意してくださいi != a。したがって、警告が表示されます。ifこれをステートメントとして書くのが最善です:

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