当前位置: 代码迷 >> 单片机 >> 单片机程序优化(全局变量静态变量全局函数静态函数),该如何处理
  详细解决方案

单片机程序优化(全局变量静态变量全局函数静态函数),该如何处理

热度:109   发布时间:2016-04-28 14:49:50.0
单片机程序优化(全局变量静态变量全局函数静态函数)
刚使用单片机,发现和以前不同的是。
对程序的空间大小很敏感(8k,16k)。而对全局变量的设置不敏感(一个人写不怕乱)。

那么问题来了,我有必要将全局变量变成局部变量或者static变量吗?(如果可以),有必要将某些函数变成static函数吗?(有些驱动只有本文件有用)。
如果这么变了,对程序编译后的影响有多大?是变大还是变小?值不值得如此做。
------解决思路----------------------
将全局变量或者函数设为static与否,不影响程序的生成大小。局部变量申明为static,对程序的大小影响几乎没有。倒是可以节约栈空间。
------解决思路----------------------
全局变量变成局部变量应该会省RAM。因为不同时运行的子函数局部变量空间可以复用。
------解决思路----------------------
将全局变量或者函数设为static与否,不影响程序的生成大小,可以节省RAM。
------解决思路----------------------
不影响大小

你说的情况确实存在, 代码太多,是影响调试,甚至无法调试

俺的做法,先将无关的功能部分 屏蔽 ...


------解决思路----------------------
全局变局部会涉及内存和栈的释放  是有好处的