华为的编程规范和范例华为的编程规范和范例华为的编程规范和范例华为的编程规范和范例华为的编程规范和范例华为的编程规范和范例华为的编程规范和范例华为的编程规范和范例
4 可读性
¹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 1
if (Trunk[index].trunk_state == TRUNK_IDLE) {
Trunk[index].trunk_state = TRUNK_BUSY;