发新帖我要提问
12
返回列表
打印

大家自己是怎么避免使用全局变量的

[复制链接]
楼主: llia
手机看帖
扫描二维码
随时随地手机跟帖
21
wangpe| | 2018-5-16 11:04 | 只看该作者 回帖奖励 |倒序浏览
即使是使用了全局变量了,也要尽可能的发挥其优点。一个全局变量能有多个功能更好,没有多个功能,有2个也不错。就是说,有些函数的功能,可以用定义过的全局变量来实现的,就不要再重新定义一个新的全局变量了。

使用特权

评论回复
22
langgq| | 2018-5-16 11:09 | 只看该作者
我一般是尽量使用局部变量;参数传递和返回时,单个参数用直接传递,buf用指针;中断服务函数没有参数和返回值,要传递参数和返回结果只能用全局变量,当然他内部的计算中间变量也用局部的。这样感觉比较省RAM,但不知道是否可取,求指导……

使用特权

评论回复
23
wangzsa| | 2018-5-16 11:12 | 只看该作者
我一般是尽量使用局部变量;参数传递和返回时,单个参数用直接传递,buf用指针;中断服务函数没有参数和返回值,要传递参数和返回结果只能用全局变量,当然他内部的计算中间变量也用局部的。这样感觉比较省RAM,但不知道是否可取,求指导……

使用特权

评论回复
24
zhuww| | 2018-5-16 11:15 | 只看该作者

用STATIC的飘过

使用特权

评论回复
25
zhanglli| | 2018-5-16 11:19 | 只看该作者

程序多半函数都会用到的变量,有相关性,用全局变量,调试方便省空间.

使用特权

评论回复
26
lium| | 2018-5-16 11:21 | 只看该作者
对于一些变量的作用域或使用范围,来适当地使用全局变量比较好

使用特权

评论回复
27
guoyt| | 2018-5-16 11:24 | 只看该作者


局部变量同样有风险!
当局部变量与全局变量,或外层变量同名时,风险巨大。

使用特权

评论回复
28
yufe| | 2018-5-16 11:29 | 只看该作者
空间可以的话 用全局不要紧的 单要适度 在函数里尽量用STATIC 就可以了

使用特权

评论回复
29
wangpe| | 2018-5-16 11:31 | 只看该作者
从深层的角度来看,全局变量可以看成是内存,如RAM。局部变量可以看成寄存器,如A,B,X,Y,R0......,有时候局部变量不够多,还可以定义一些全局变量来当做局部变量,当然速度会慢些。

使用特权

评论回复
30
wangzsa| | 2018-5-16 11:38 | 只看该作者
如果只是作为临时的计算,或临时的保存数据等,可以使用局部变量,速度快,省RAM。如果涉及到**数据,保持数据以备下次使用等,那也只能用全局变量了。

使用特权

评论回复
31
zhuww| | 2018-5-16 11:40 | 只看该作者

局部变量也是可以保持数据的,加STATIC就可以。

全局可以用,但尽量控制在单个文件内用,以降低偶合。多文件使用最好用接口函数来修改或者取值。
如果程序本来就小,用全局会更方便一些。

使用特权

评论回复
32
llia|  楼主 | 2018-5-16 11:43 | 只看该作者
好的,我明天去单位试一下,多谢各位大侠了哈,结贴了先

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则