不是说局部变量可以自动释放的吗???我的为什么不行??例如:大概写一
点,说明问题。。
key() //定义一个函数
{
int a;
}
main() //主函数
{
key();
while(1);
}
为什么我在key函数内每定义一个变量,KELL C51编译时就显示多使用一个DATA
单元???它不是局部变量吗??如果我好自己定义的函数,RAM肯定不够??
回复 楼主 LIU8MENG 的帖子
你只有一个函数自然看不出来了
你再弄一个知道了
局部变量释放,是指在其他无继承关系的函数内部,可重新使用
而不是说编译后局部变量就不占data
回复 沙发 aibxyz 的帖子
但是我把key() 改为key() reentrant就可以释放变量,,为什么???
回复 板凳 LIU8MENG 的帖子
reentrant函数局部变量在堆栈区,不在data区!也许你应该看看SP的差别。
回复 4楼 呱呱 的帖子
照lz的意思,keil51局部變量不佔用空間了..