華為軟體編程規範學習(四)–可讀性

來源:互聯網
上載者:User

華為軟體編程規範學習(四)--可讀性

4-1:注意運算子的優先順序,並用括弧明確運算式的操作順序,避免使用預設優先順序

說明:防止閱讀程式時產生誤解,防止因預設的優先順序與設計思想不符而導致程式出錯。

樣本:下列語句中的運算式

word = (high <<8) | low     (1)

if ((a | b)&& (a & c))           (2)

if ((a | b) < (c& d))              (3)

如果書寫為:

high << 8 | low

a | b && a& c

a | b < c & d

由於

high << 8 | low = ( high << 8) | low,

a | b && a& c = (a | b) && (a & c),

(1)(2)不會出錯,但語句不易理解;

a | b < c & d= a | (b< c)& d,(3)造成了判斷條件出錯。

4-2:避免使用不易理解的數字,用有意義的標識來替代。涉及物理狀態或者含有物理意義的常量,不應直接使用數字,必須用有意義的枚舉或宏來代替

樣本:如下的程式可讀性差。

if(Trunk[index].trunk_state == 0){   Trunk[index].trunk_state = 1;   ...  // program code}

應改為如下形式。

#define TRUNK_IDLE 0#define TRUNK_BUSY 1if(Trunk[index].trunk_state == TRUNK_IDLE){   Trunk[index].trunk_state = TRUNK_BUSY;   ...  // program code}

4-1:來源程式中關係較為緊密的代碼應儘可能相鄰

說明:便於程式閱讀和尋找。

樣本:以下代碼布局不太合理。

rect.length = 10;char_poi = str;rect.width = 5;

若按如下形式書寫,可能更清晰一些。

rect.length = 10;rect.width = 5; // 矩形的長與寬關係較密切,放在一起。char_poi = str;

4-2:不要使用難懂的技巧性很高的語句,除非很有必要時

說明:高技巧語句不等於高效率的程式,實際上程式的效率關鍵在於演算法。

樣本:如下運算式,考慮不周就可能出問題,也較難理解。

*stat_poi ++ += 1;* ++ stat_poi += 1;

應分別改為如下:

*stat_poi += 1;stat_poi++;    // 此二語句功能相當於“* stat_poi ++ += 1; ”++ stat_poi;*stat_poi += 1; // 此二語句功能相當於“ * ++ stat_poi += 1; ”

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.