C++/C編程指南之基本語句

來源:互聯網
上載者:User
運算子的優先順序:一元運算子+ - *的優先順序高於對應的二元運算子【規則 4-1-1】 如果程式碼中的運算子比較多,用括弧確定運算式的操作順序,避免使用預設的優先順序。複合運算式:如a = b = c = 0存在的理由1)書寫簡潔;2)可以提高編譯效率。【規則 4-2-1】 不要編寫太複雜的複合運算式。【規則 4-2-2】 不要有多用途的複合運算式。如: d = (a = b + c) + r ; 該運算式既求 a 值又求 d 值。【規則 4-2-3】 不要把程式中的複合運算式與“真正的數學運算式”混淆。如: if (a < b < c) // a < b < c 是數學運算式而不是程式運算式並不表示 :if ((a 而是成了令人費解的 if ( (a if語句:以“與零值比較”為例布爾變數與零值比較【規則 4-3-1】 不可將布爾變數直接與 TRUE 、FALSE 或者1、0進行比較。如:假設布爾變數名字為 flag,它與零值比較的標準 if 語句如下:if (flag) // 表示 flag 為真if (!flag) // 表示 flag 為假其它的用法都屬於不良風格, 例如:if (flag == TRUE)if (flag == 1 )if (flag == FALSE)if (flag == 0)整型變數與零值比較【規則 4-3-2】 應當將整型變數用“==”或“! =”直接與 0 比較。如:假設整型變數的名字為 value, 它與零值比較的標準 if 語句如下:if (value == 0)if (value != 0)不可模仿布爾變數的風格而寫成if (value) // 會讓人誤解 value 是布爾變數if (!value)浮點變數與零值比較【規則 4-3-3】 不可將浮點變數用“==”或“!=”與任何數字比較。千萬要留意, 無論是 float 還是 double 類型的變數,都有精度限制。所以一定要避免將浮點變數用“==”或“!=” 與數字比較,應該設法轉化成“>=”或“<=”形式。如:假設浮點變數的名字為 x,應當將if (x == 0.0) // 隱含錯誤的比較轉化為if ((x>=-EPSINON) && (x<=EPSINON))其中 EPSINON 是允許的誤差( 即精度)。指標變數與零值比較【規則 4-3-4】 應當將指標變數用”==”或”!=”與NULL比較。對if語句的補充說明if (NULL == p) 取代 if (p == NULL):防止將”==”誤寫成”=”,編譯器又不報錯if (condition) 改寫成: if (condition) 或者: return (condition ? x : y);return x; {return y; return x;}else{return y;}迴圈語句的效率【建議 4-4-1】 在多重迴圈中,如果有可能,應當將最長的迴圈放在最內層,最短的迴圈放在最外層,以減少 CPU 跨切迴圈層的次數。例如樣本 4-4(b) 的效率比樣本4-4(a) 的高。【建議 4-4-2】 如果迴圈體記憶體在邏輯判斷,並且迴圈次數很大,宜將邏輯判斷移到 迴圈體的外面。如果 N 非常大,最好採用判斷邏輯外提的寫法,可以提高效率。如果 N 非常小,兩者效率差別並不明顯,不需將判斷邏輯外提,因為程式更加簡潔。for語句的迴圈控制變數【規則 4-5-1】 不可在 for 迴圈體內 修改迴圈變數,防止 for 迴圈失去控制。【建議 4-5-1】 建議 for 語句的迴圈控制變數的取值採用“半開半閉區間”寫法。switch語句switch (variable){case value1 : …break;case value2 : …break;…default : …break;}【規則 4-6-1】 每個 case 語句的結尾不要忘了加 break,否則將導致多個分支重疊(除非有意使多個分支重疊)。【規則 4-6-2】不要忘記最後那個 default 分支。 即使程式真的不需要 default 處理,也應該保留語句 default : break; 這樣做並非多此一舉,而是為了 防止別人誤以為你忘default 處理。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.