C51 提供一个3字节的通用存储器指针,通用指针的头一个字节表明指针所指的存储区空间,另外两个字节存储16位偏移量对于DATA IDATA 和PDATA 段只需要8位偏移量,Keil允许使用者规定指针指向的存储段这种指针叫具体指针,使用具体指针的好处是节省了存储空间,编译器不用为存储器选择和决定正确的存储器操作指令产生代码。这样就使代码更加简短,但你必须保证指针不指向你所声明的存储区以外的地方,否则会产生错误,而且很难调试。
下面的例子反映出使用具体指针比使用通用指针更加高效,使用通用指针的第一个循环需要378个处理周期,使用具体指针只需要 151 个处理周期
指针类型 大小
通用指针 3 字节
XDATA指针 2 字节
CODE 指针 2 字节
IDATA指针 1 字节
DATA指针 1 字节
PDATA指针 1 字节
本文对比了C51中使用具体指针和通用指针的方法,通过实例展示了具体指针如何在节省存储空间的同时提高代码效率。具体指针在特定存储段操作上更加高效,但需注意避免越界访问。


被折叠的 条评论
为什么被折叠?



