在Apple webkit的coding style裡就有一條說不要這樣寫 if (a == true) 和 if (a) 是不同的 (測試過C/C++, java script) 乍看之下,似乎只是多寫了 == true,有人認為這樣邏輯上比較清楚 (我不這麼認為) 實際上true會被轉換成1再比較,意義上不是a的boolean是否為true 如果你真的要跟1比較,請寫成 == 1 如果a是int的情況下,又是負數,例如 -1 if (a == true) 實際上是 if (-1 == 1), 不會進branch if (a) a不是0,會進去branch C/C++的慣例 boolean true定義為1,false定義為0 表示error code時成功用0,失敗用非零 (可能是正或負數,看API定義) 以語言的設計或定義,我覺得不寫 == true 才是比較好的寫法 一方面字數比較少,閱讀邏輯上也沒有比較差 我也沒看過哪個open source軟體寫== true (js似乎會寫 === true,不熟) 順便一提,我還看過 isXXX() ? true : false 的,這個語意上應該沒有差 直接寫isXXX() 不就好了? 理由一樣,養成好的習慣吧 一個簡單的C++驗證程式 #include <iostream> int main(int argc, char *argv[]) { int a = -1; if (a == true) std::cout << "a == true\n"; else ...