语法规则 if cond == value1 endif define NB_ELEMENT (sizeof(RxMsg) / sizeof(RxMsg[0]));

一、与if相关的

1.if(cond == true) {...}可以换成if(cond != false) {...},因为错误出现的情况更少
2.if(cond == value1) {...} if(cond == value2) {...},如果出现的情况很多,可以设置成宏,例:

.....

endif

3.如果有多个if(condx){}并列,换成if~else形式
4.如果if~else if过多,则换成switch~case形式

二、与变量定义相关

1.对于boolean flag,不要用byteshortint等,用一个位bit就可以
2.对const变量使用const关键字,变量会被保存在ROM中,节省RAM
3.用sizeof关键字去获取数组的大小,不要直接定义数组大小

const RxMsg_t RxMsg[] =
{
R_POWER,
C_GET_VERSION,
R_GET_VERSION,
R_REJECT
}

define NB_ELEMENT (sizeof(RxMsg) / sizeof(RxMsg[0]));

4.各个模块不能直接使用全局变量,要通过Get或Set接口去访问

三、与运算方式相关

1.result = value / 4 改成 result = value >> 2
2.result = value * 4 改成 result = value << 2
3.result = value % 8 改成 result = value & 0x07