keil里面data怎么会变大?

[复制链接]
查看11 | 回复3 | 2013-5-20 12:52:51 | 显示全部楼层 |阅读模式
这是因为,你删除的程序中,有几行是函数的调用,被你删除后,这些函数就只有函数体,却没有调用了(从编译信息看,是memory_clear_with_font_bgcolor)。当这个函数中有局部变量时,由于没被调用过,所以KEIL无法进行变量的优化,最后只能把局部变量保存下来,反而多占用了空间。解决办法:1、把不用函数删掉或注释掉2、写成这样,伪调用:a = 1;if(a==0){memory_clear_with_font_bgcolor();//把从不调用的函数放这里}...
回复

使用道具 举报

千问 | 2013-5-20 12:52:51 | 显示全部楼层
这里内存不是动态分配的,应该与申请和释放没有多大关系,具体怎么回事要看编译器如何编译的,可以在仿真的过程看看增加了那些内容。...
回复

使用道具 举报

千问 | 2013-5-20 12:52:51 | 显示全部楼层
data是什么,恩貌似指的是ram空间吧,传统51也就256Byte。这块区域的话变大变小比如栈空间是编译器决定的,而内存释放啊之类的时动态的。所以data为何变大,应该是编译器的原因。个人意见...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行