zoukankan      html  css  js  c++  java
  • 4可读性

     

    1.注意运算符优先级,并用括号明确表达式的操作顺序,避免使用默认优先级

    说明:防止阅读程序时造成误解,防止因默认的优先级与涉及思想不符而导致程序出错。

    示例:下列语句中的表达式

    word = ( high << 8 ) | low    (1)
    if ((a | b) && (a & c))        (2)
    if ((a | b) < (c & d))        (3)

    如果书写为

    high << 8 | low    (1)
    a | b && a & c    (2)
    a | b < c & d    (3)

    由于

    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)造成了判断条件出错。

    2.避免使用不易理解的数字,用有意义的标识来替代。涉及到物理状态的或者含有物理意义的常量,不应直接使用数字,必须使用有意义的枚举或者宏来代替。

    示例:以下程序可读性差。

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

    应改为如下形式:

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

     

    3.源程序中关系比较紧密的代码应尽可能相邻。

    说明:便于程序阅读和查找。

    示例:以下代码布局不太合理。

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

    若按如下形式书写,可能更清晰一些。

    rect.length = 10; 
    rect.width = 5;    //矩形的长和宽比较密切,放在一起
    char_poi = str;

     

    4.不要使用难懂技巧性很高的语句,除非很有必要时。

    说明:高技巧语句不等于高效率程序,实际上程序的效率关键在于算法。

    示例:如下表达式,考虑不周就可能出问题,也比较难理解。

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

    分别改为如下:

    * stat_poi += 1;
     stat_poi++;    //此两句功能相当于 “* stat_poi++ += 1;”
     
    ++stat_poi;
    *stat_poi += 1;    此两句功能相当于 “*++stat_poi += 1;
  • 相关阅读:
    react路由组件&&非路由组件
    react函数式组件(非路由组件)实现路由跳转
    react使用antd组件递归实现左侧菜单导航树
    【LeetCode】65. Valid Number
    【LeetCode】66. Plus One (2 solutions)
    【LeetCode】68. Text Justification
    【LeetCode】69. Sqrt(x) (2 solutions)
    【LeetCode】72. Edit Distance
    【LeetCode】73. Set Matrix Zeroes (2 solutions)
    【LeetCode】76. Minimum Window Substring
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/11678232.html
Copyright © 2011-2022 走看看