[讨论] C51内存单元释放问题???????

LIU8MENG   2008-9-16 14:41 楼主
不是说局部变量可以自动释放的吗???我的为什么不行??例如:大概写一
点,说明问题。。


key()   //定义一个函数
{
int a;

}
main()  //主函数
{
key();
while(1);

}
为什么我在key函数内每定义一个变量,KELL C51编译时就显示多使用一个DATA
单元???它不是局部变量吗??如果我好自己定义的函数,RAM肯定不够??

回复评论 (4)

回复 楼主 LIU8MENG 的帖子

你只有一个函数自然看不出来了
你再弄一个知道了
局部变量释放,是指在其他无继承关系的函数内部,可重新使用
而不是说编译后局部变量就不占data
点赞  2008-9-16 14:43

回复 沙发 aibxyz 的帖子

但是我把key() 改为key() reentrant就可以释放变量,,为什么???
点赞  2008-9-16 14:44

回复 板凳 LIU8MENG 的帖子

reentrant函数局部变量在堆栈区,不在data区!也许你应该看看SP的差别。
点赞  2008-9-16 14:45

回复 4楼 呱呱 的帖子

照lz的意思,keil51局部變量不佔用空間了..
点赞  2008-9-16 14:47
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复