导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→C51编程:各位请看

* 9766: C51编程:各位请看

   rainmans 
rainmans发表的帖子 

 C51编程:各位请看

    
请问:各位大虾
在keil c中,如果用
large model 编译。
函数中的局部变量是不是不能覆盖重用。

eg。

void main()
{
    fun1();
    fun2();
    .....
}

void fun1()
{
    char arr1[16] = { 0 };
    char arr2[16] = { 0 };
    
    .....
    
}

void fun2()
{
    char arr1[16] = { 0 };
    char arr2[16] = { 0 };
    
    .....
        
}


在这里,
我的理解:因为fun1()和fun2()没有调用关系.所以他们各自的局部变量应该公用一段
XRAM. 可是编译的结果是.二者的占用空间各自独立.和全局变量一样.

这不是会浪费很多RAM啊 :-(

请各位打下指教.



发表时间:2002年8月8日10:55:00

  
回复该帖

本主题共有 3 帖,分页:>>>>>该主题的所有内容[3]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  9830.[详细]不会
摘要:    函数的局部变量存于堆栈中,用时分配,用完释放,这是CPU自动完成的。所有子程序的局 部变量在使用时都放在堆栈里,它们共享堆栈RAM,自动完成覆盖。   ......(286字)
- [gdtyy][1033次] 2002年8月10日

  10099.[详细]thank gdtyy
摘要:是不是如果着两个函数如果没有被调用过,他们旧会占用固定的RAM。我还没有试一下......(39字)
- [rainmans][1474次] 2002年8月17日

[上一篇帖子]:晶振一样吗?串口中断程序正确吗?RI,TI正确清零吗?比串口中断更高的中断有没运行?
[下一篇帖子]:初学者:请求支援谁知道75Ω/120Ω平衡/非平衡转换的原理和电路请不吝赐教,fanzhiyong1