2012-08-30 100 views
0

可能重複:
What is the difference between these (bCondition == NULL) and (NULL==bCondition)?適當的形式在C++

this question它說: 「在比較左側const對象」 是比其他做一些如何 「更好」。爲什麼是這樣?

+1

說'如果(5 == i)'沒有那麼多使用。它應該停止說錯,如果(我= 5)'錯誤。有時被稱爲「尤達條件」。一頁和其他一些[這裏是](http://www.dodgycoder.net/2011/11/yoda-conditions-pokemon-exception.html)。 – chris

+0

Google適用於:「Yoda條件」 – Mysticial

+1

Yoda條件現在通常被認爲是不好的做法,因爲它們的可讀性較差,大多數編譯器無論如何都會對分配提出警告。 – ssube

回答

1

任何體面的編譯器都會在條件表達式中警告你有關賦值的問題,因此這些表單現在並不相關。

在另一點上「使用無符號的變量是> = 0 //好的技巧」我聽說使用unsigned可能會引起混淆,除非有原因,否則不應該使用。有沒有人同意或反駁這個?

使用unsigned時的值應該是unsigned

0

這是爲了避免「=」與「==」的錯誤。如果你的意思是「==」,但是輸入「=」並且LHS上的對象是常量,編譯器會發出抱怨。例如,

if (3 == x) 

最好

if (x == 3) 

,因爲如果你鍵入

if (3 = x) 

,那麼你會得到一個錯誤,但如果你鍵入

if (x = 3) 

那麼你可能會得到一個錯誤!