1

次の 2 つの条件に違いはありますか。

if (a==5)そしてif (5==a)

4

3 に答える 3

1

いいえ、まったく違いはありません。

その式が完全に有効で、常に に評価されるC/C++でエラーをキャッチできるように、5==a代わりにこの式を記述していました。そうすれば、プログラマーが (誤って) 式を記述した場合、コンパイル エラーが発生します。a==5a=5true5=a

于 2012-05-04T18:09:11.180 に答える
1

通常、この 2 つは同じです。

定数を最初 ( ) に置くことを推奨する人if (5==a)もいます。この方法では、タイプを間違え=て get:の 1 つを省略した場合if (5=a)、コンパイラはエラー メッセージを表示しますが、if (a=5)コンパイルして実行しますが、おそらく希望どおりにはなりません。

一部のコンパイラは後者に対して警告を発します (たとえば、最近の gnu do の繰り返し) が、他のコンパイラは警告を発しません (Visual C++ は後者の 1 つです)。

于 2012-05-04T18:12:14.037 に答える
1

「a」が == をオーバーライドするオブジェクトを指している場合、理論上は異なる結果が得られる可能性があります。

于 2012-05-04T18:12:47.437 に答える