keil里面data怎么会变大?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了keil里面data怎么会变大?相关的知识,希望对你有一定的参考价值。
问题是这样的,我手上有一块彩屏的列子程序,我想修改了自己测试。可以是当我删除一些程序,发现data会变大,我删除了越多,data就会越大。有的人告诉我是内存申请了没有释放掉。我想问下,怎么释放内存。
没有删除之前如上图
删除之后data由以前的32变成34.
如果我删除了越多,就会变得越大。
这是怎么回事啊?
解决办法:1、把不用函数删掉或注释掉
2、写成这样,伪调用:
a = 1;
if(a==0)
memory_clear_with_font_bgcolor();//把从不调用的函数放这里
追问
那您的意思就是说,调用过反而会被keil清除掉,没被调用的反而会被保存下来~
追答调用过的函数,它里面的局部变量会和其他的变量复用某个地址,而没被调用过的函数,里面的变量KEIL不知道怎么优化,但又必须保留,所以从编译结果来看,反而使用的RAM多了。
参考技术A 这里内存不是动态分配的,应该与申请和释放没有多大关系,具体怎么回事要看编译器如何编译的,可以在仿真的过程看看增加了那些内容。追问可以给个判别的方法吗
追答总共就三十几个字节,把全局的变量拉到观察窗口看看就知道了,编译器使用RAM一般是从某个地址起连续使用的。
参考技术B data是什么,恩貌似指的是ram空间吧,传统51也就256Byte。这块区域的话变大变小比如栈空间是编译器决定的,而内存释放啊之类的时动态的。所以data为何变大,应该是编译器的原因。个人意见pr视频素材为什么会变大。怎么调回来
参考技术A 序列(时间轴)的分辨率比原始视频的分辨率小。可以在时间轴点击素材,然后在效果控件界面(没有看到的话可以在菜单的窗口里面勾选)调整素材大小。以上是关于keil里面data怎么会变大?的主要内容,如果未能解决你的问题,请参考以下文章