發表文章

目前顯示的是 2月, 2020的文章

關於craftwar (簡單的自我介紹)

performance paranoid 主要是 C/C++ programmer,目前對Windows比較熟悉 OBS contributor 幫官方打雜修過一些小東西和bug 也寫了一些自己和朋友想用的OBS擴充功能 個人作品多數有開源,可在github上找到 https://github.com/craftwar Hobby: 合約橋牌 日本麻將

Visual Studio debug child process

https://devblogs.microsoft.com/devops/introducing-the-child-process-debugging-power-tool/ https://blogs.msdn.microsoft.com/greggm/2005/02/21/inside-image-file-execution-options-debugging/

if (a == true) 和 if (a) 是不同的,不要寫 if (a == true)

在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                 std::cout << "a != true\n";         return 0; }