Chinaunix首页 | 论坛 | 博客
  • 博客访问: 500087
  • 博文数量: 121
  • 博客积分: 4001
  • 博客等级: 上校
  • 技术积分: 1390
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-13 21:48
文章分类

全部博文(121)

文章存档

2011年(4)

2010年(11)

2009年(106)

我的朋友

分类: 嵌入式

2009-09-22 14:03:27

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声明。

阅读(973) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~