高效的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的指针。
- Linux下C编程基础之:常用编辑器(08-13)
- Linux下C编程基础之:gcc编译器(08-13)
- Linux下C编程基础之:gdb调试器(08-13)
- Linux下C编程基础之:make工程管理器(08-13)
- Linux下C编程基础之:使用autotools(08-13)
- Linux下C编程基础之:实验内容(08-13)