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

[复制链接]
2184|43
renyaq 发表于 2021-12-2 23:03 | 显示全部楼层
全局变量能少用还是少用,多了程序也不一定好理解,尽量使用局部变量。代码比较独立,好调也好移植。
chenjunt 发表于 2021-12-2 23:06 | 显示全部楼层

尽量少用全局变量,要看你的习惯了。
写子函数的时候,最好想一想,能不能把子函数规范化。就是说,一个子函数,要尽可能的被多次调用,同时也要想想,怎么让这个子函数的作用强大。如果常常这样想,你就会喜欢使用带参数函数,带返回值函数。这样,会常常使用局部变量,所以全局变量就少用了。
heweibig 发表于 2021-12-2 23:07 | 显示全部楼层
即使是使用了全局变量了,也要尽可能的发挥其优点。一个全局变量能有多个功能更好,没有多个功能,有2个也不错。就是说,有些函数的功能,可以用定义过的全局变量来实现的,就不要再重新定义一个新的全局变量了。
chenjunt 发表于 2021-12-2 23:09 | 显示全部楼层
用指针 尽量减少全局变量
juventus9554 发表于 2021-12-2 23:10 | 显示全部楼层
我一般是尽量使用局部变量;参数传递和返回时,单个参数用直接传递,buf用指针;中断服务函数没有参数和返回值,要传递参数和返回结果只能用全局变量,当然他内部的计算中间变量也用局部的。这样感觉比较省RAM,但不知道是否可取,求指导……
dengdc 发表于 2021-12-2 23:13 | 显示全部楼层
用STATIC的飘过
zhanglli 发表于 2021-12-2 23:16 | 显示全部楼层
程序多半函数都会用到的变量,有相关性,用全局变量,调试方便省空间.
stly 发表于 2021-12-2 23:18 | 显示全部楼层
对于一些变量的作用域或使用范围,来适当地使用全局变量比较好
chenjunt 发表于 2021-12-2 23:20 | 显示全部楼层

局部变量同样有风险!
当局部变量与全局变量,或外层变量同名时,风险巨大。
renyaq 发表于 2021-12-2 23:22 | 显示全部楼层
好像也没什么办法因为有些变量就是得用全局的
dengdc 发表于 2021-12-2 23:24 | 显示全部楼层
空间可以的话 用全局不要紧的 单要适度 在函数里尽量用STATIC 就可以了
yszong 发表于 2021-12-2 23:26 | 显示全部楼层
从深层的角度来看,全局变量可以看成是内存,如RAM。局部变量可以看成寄存器,如A,B,X,Y,R0......,有时候局部变量不够多,还可以定义一些全局变量来当做局部变量,当然速度会慢些。
llljh 发表于 2021-12-2 23:28 | 显示全部楼层
如果只是作为临时的计算,或临时的保存数据等,可以使用局部变量,速度快,省RAM。如果涉及到**数据,保持数据以备下次使用等,那也只能用全局变量了。
wyjie 发表于 2021-12-2 23:30 | 显示全部楼层
全局变量其实可以用,但最好只在一个地方修改,其它地方只读,这时效率最高
chuxh 发表于 2021-12-2 23:32 | 显示全部楼层
还有一些类似情况,各模块或驱动使用的变量只能被它自己修改,其它地方也是只读
chenho 发表于 2021-12-2 23:34 | 显示全部楼层
局部变量也是可以保持数据的,加STATIC就可以。
supernan 发表于 2021-12-2 23:38 | 显示全部楼层
全局可以用,但尽量控制在单个文件内用,以降低偶合。多文件使用最好用接口函数来修改或者取值。
huangchui 发表于 2021-12-2 23:39 | 显示全部楼层
如果程序本来就小,用全局会更方便一些。
yszong 发表于 2021-12-2 23:41 | 显示全部楼层
有时候太过于纠结怎么减少全局变量耗费的时间成本太高
dingy 发表于 2021-12-2 23:43 | 显示全部楼层
谢谢楼上各位大佬门 我倒是没有怎么注意内存的问题 没想到学问挺多
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部
0