关于减少全局变量使用的方法

2019-08-19 17:24发布

比如上位机向单片机A发送一个数32,A收到这个32后每隔2秒闪烁灯一次,闪烁的同时将32减1,然后将减一后的值再发给上位机,直到32减为0.
如果还没有减为0又收到上位机的数字比如100,立即从新计时,每隔2秒闪烁灯一次,闪烁的同时将100减1,然后将减一后的值再发给上位机,直到100减为0.

我想了很久,感觉使用全局变量是少不了的:一个放从上位机接收的数值,2s时间到的标志(没有在定时中断里做其他事情,因为我这里只是以闪烁灯为例)。
这里如果使用全局变量数量还是比较少的,假如A里面要做几百个类似但又不重样的事情呢?

有没有人能讲讲怎样减少使用全局变量?我一写程序就马上想到用全局变量了,除了上面的例子,还有:串口接收数据包、DMA发送数组(见http://www.openedv.com/posts/list/44829.htm)、DMA采集ADC值。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
16条回答
好人
1楼-- · 2019-08-20 14:13
仁者见仁智者见智吧。自己习惯喜欢就好。程序语音无非就两个作用,一个是实现功能,一个是给人看。自己写的,只要自己能看明白,以后修改容易就对。如果有时候一位追求结构,搞的像win8一样复杂,日后你想维护一下,估计也会像看天书。培养一个适合自己风格的程序构,尽量让他合理,易懂就最好。
虎啸
2楼-- · 2019-08-20 19:02
正点原子 发表于 2015-1-17 23:14
用全局变量可以啊,你用其他的占内存更多.

为什么呢?我看相关的资料说尽量少使用全局变量啊。
oyixi001
3楼-- · 2019-08-21 00:48
 精彩回答 2  元偷偷看……
虎啸
4楼-- · 2019-08-21 05:13
感谢,新手上路,多谢。
小陀螺爱炒蛋
5楼-- · 2019-08-21 06:49
回想起了读大学时候刚刚学习C语言~也是喜欢到处定义变量。。多写代码,慢慢你就有感觉知道如何设计自己想要的程序了
mack13013
6楼-- · 2019-08-21 09:25
全局变量不是老虎,不要害怕使用全局变量,只要能让程序更加合理,使用全局变量也无妨。

了解全局变量的优缺点,针对其优缺点进行比较选择,如果使用全局变量比其他方法有优势,那就大用特用。很多MSDN上的例子也没有可以回避全局变量的。一切根据实际需要来做就可以了。

一周热门 更多>