微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 高效的C编程之:寄存器分配

高效的C编程之:寄存器分配

时间:08-30 来源:3721RD 点击:

errs的访问都会使用耗时的Load/Store指令;而test2只使用了一次内存访问指令。这对提高程序的整体性能有很大帮助。

3.指针链

指针链(Pointer Chains)常被用来访问结构体内部变量。下面的例子显示了一个典型的指针链的使用。

typedef struct { int x, y, z; } Point3;

typedef struct { Point3 *pos, *direction; } Object;

void InitPos1(Object *p)

{

p->pos->x = 0;

p->pos->y = 0;

p->pos->z = 0;

}

上面的代码每次使用"p->pos"时都会对变量重新取值。为了提高代码效率,将程序改写如下。

void InitPos2(Object *p)

{

Point3 *pos = p->pos;

pos->x = 0;

pos->y = 0;

pos->z = 0;

}

经过改写的代码,减少了内存访问次数,提高程序的执行效率,另外也可以在object结构体中增加一个point3域,专门作为指向p->pos的指针。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top