函数嵌套的问题
C51函数嵌套调用多了为什么就运行不了了啊void drawpoint(page *p,int x,int y,int op);
void showchar(page *p,int x,int y,char c,char op);
void showstr(page *p,int x,int y,char c[],char op);
有这三个函数,下面的一个会调用上面的那个,
比如调用showstr,page *p从showstr传入,也会依次给到下面的showchar和drawpoint,
这么嵌套2层就运行不了了。
但改为嵌套一层就可以,是怎么回事啊 结构体page里又有一个uchar* pbuffer
c51函数, 默认都是 不可重入函数, 过多的指针类嵌套调用, 易陷入内存重复使用(内存冲突), 死机很正常.
除非把每一个函数重新定义为可重入函数. 学习巩固一下 猜测大概率是“可重入”的问题。去了解一下reentrant吧 已解决!真的是reentrant的问题。以前一直以为只有递归,中断里调函数时候才要可重入,原来多层嵌套也要,可算学习了
页:
[1]