Windows客户端C/C++编程规范“建议”——表达式和运算
生活随笔
收集整理的這篇文章主要介紹了
Windows客户端C/C++编程规范“建议”——表达式和运算
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
4 表達式和運算
4.1?比較操作中將常量設置為左值
等級: 【推薦】說明:編寫代碼時,如果將常量設置為右值。可能因馬虎將“==”寫成“=”導致邏輯錯誤。這種場景下,編譯器是不會報錯的,代碼檢查也比較容易被忽視。
? ? ? ? 例子:
std::string::size_type index = str.find("a");
if ( index = std::string::npos){
}? ? ? ? 上例中寫法可以執(zhí)行,但是邏輯是錯的。如下編寫,可以借助編譯器檢查出問題:
std::string::size_type index = str.find("a");
if ( std::string::npos = index ){
}
4.2?除法操作要判斷除數是否為0
等級: 【必須】4.3?乘法或加法運算需考慮結果溢出場景
等級: 【必須】4.4?不使用復雜的復合結構
等級: 【推薦】說明:比如不要多次嵌套使用“:?”運算符。復雜的復合結構將使代碼不易閱讀和理解。
4.5?不要在條件表達式中賦值
等級: 【推薦】說明:避免出現==、=和!=等在條件表達式中出現,可以避免手誤,也可以提高增加代碼可讀性。
4.6?對浮點數不要做相等或不等比較
等級: 【推薦】說明:浮點數運算中經常產生誤差,=和!=操作可能會返回期望相反結果。
4.7?盡可能使用sizeof(變量)而非sizeof(類型名)
等級: 【要求】說明:這樣方便代碼的維護,將不至于之后修改變量類型后,sizeof計算出錯。注意:對象指針使用sizeof后得出的是指針大小,而非對象大小
4.8?盡量避免使用位運算
等級: 【要求】說明:除非對內存使用和效率非常高的情況下,盡量避免使用位運算。這可以使用提高代碼的可讀性。
4.9?offsetof宏
等級: 【必須】說明:不要自己估算結構體中成員變量偏移,而使用offsetof宏進行計算。
(轉載請指明出于breaksoftware的csdn博客)
總結
以上是生活随笔為你收集整理的Windows客户端C/C++编程规范“建议”——表达式和运算的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows客户端C/C++编程规范“
- 下一篇: Windows客户端C/C++编程规范“