嵌入式高效C编程要点总结--适用于ARM相关的C语言编程
absolute8511于2008-10-08
1:尽量用其他运算代替除法操作。如:用X>Z*Y代替X/Y>Z比较。
2:合并除法和求余计算。如:a/b+a%b
3:用2的整数次幂作除数。
4:尽量使除数为常数。
5:关系操作最好转换成和0相关的。如:(x+y)>0,x!=0等
6:循环应减计数到0中止,并将i!=0作为中止条件,而不是i>0。
7:避免使用局部变量地址,如必须则应先把局部变量的值复制到另一个局部变量中。
8:多次对同一个指针的访问,应先将其值取出到一个临时变量中。
9:大量使用同一个全局变量时,应先将其拷贝到局部临时变量中,完成全部操作后再写回。
10:局部变量应尽可能使用32位类型。
11:变量定义应把所有相同类型的变量放在一起。
12:限制函数参数在4个以内,超过时,应将多个相关参数组织在一个结构体中,用传递结构体指针来代替多个参数。
13:使用_value_in_regs返回结构体。
例子:typedef struct {int hi; uint lo;}int64;
_value_in_regs int64 add64(int64 x,int64 y) {int64 res; ....... return res;}
14:函数要先定义后调用。
15:如果函数参数相同则其结果也相同,那么可以将此函数声明为纯函数,加_pure声明。