次の 2 つの条件に違いはありますか。
if (a==5)そしてif (5==a)?
いいえ、まったく違いはありません。
その式が完全に有効で、常に に評価されるC/C++でエラーをキャッチできるように、5==a代わりにこの式を記述していました。そうすれば、プログラマーが (誤って) 式を記述した場合、コンパイル エラーが発生します。a==5a=5true5=a
通常、この 2 つは同じです。
定数を最初 ( ) に置くことを推奨する人if (5==a)もいます。この方法では、タイプを間違え=て get:の 1 つを省略した場合if (5=a)、コンパイラはエラー メッセージを表示しますが、if (a=5)コンパイルして実行しますが、おそらく希望どおりにはなりません。
一部のコンパイラは後者に対して警告を発します (たとえば、最近の gnu do の繰り返し) が、他のコンパイラは警告を発しません (Visual C++ は後者の 1 つです)。
「a」が == をオーバーライドするオブジェクトを指している場合、理論上は異なる結果が得られる可能性があります。