bit savecard_updatawall(void)
{
uchar xdata *addr;
addr=0x1000;
for(k=0;k <6500;k++) //查SRAM中是否有已注册的卡
{
if(*ramaddr==0x88)
{
print(*ramaddr);
print(*(ramaddr+1));
print(*(ramaddr+2));
print(*(ramaddr+3));
}
ramaddr += 4;
}
}
按理来说,在该函数之前复制eeprom数据到外部RAM时,只复制到2000卡的信息,2000张卡以后的信息没有复制,对外部RAM来说,将它们读出来都应该是随机数,现在是该函数打印出来了6451个0x88,也就是2000张以后的卡的标志大部为是0x88,但2000张以后的卡的内码都是随机数。
不知道为什么会出现这种情况,对指针采取以上操作“uchar xdata *addr; addr=0x1000;”是否与“uchar xdata *addr = 0x1000”相同,前者赋指针地址初值的方式是否正确?