[总结]嵌入式高效C编程要点

嵌入式高效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声明。

转载于:https://www.cnblogs.com/absolute8511/archive/2008/10/08/1649625.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值