这是我学习大家的将n个字节从一个地址拷贝到另一个地址的函数,但是发现如果将这个函数调用7次以上,程序就不能正常运行。我的主芯片为AT89C55,用8279扩展 的4*4键盘来控制选择lcd 不同的屏幕。当调用mem_cpy函数在程序中出现7次以后,键盘不起作用;7次及以下完好。这是为什么?难道堆栈区不够用吗?请各位大哥大姐再给小弟指导一下!
void mem_cpy(void *t,void *s,uchar len) { char *t1,*s1; t1=(char *)t; s1=(char *)s; while (len--) { *t1++=*s1++; } } 在程序中也就是将以下两种名字的数组相互拷贝而已, uchar idata dig1[7]={"0 2.6 0"}; uchar idata dig2[7]={"4 5.0 0"}; uchar idata dig3[7]={"4 5.0 0"}; uchar idata dig4[7]={"4 5.0 0"}; uchar idata shu1[7]={"0 3.5 0"}; uchar idata shu2[7]={"4 3.5 0"}; uchar data shu3[7]={"4 3.5 0"}; uchar idata shu4[7]={"4 3.5 0"};
|