为了账号安全,请及时绑定邮箱和手机立即绑定

全球变量是否不好?

全球变量是否不好?

C++ C
月关宝盒 2019-05-29 17:27:58
全球变量是否不好?在C / C ++中,全局变量和我的教授认为的一样糟糕吗?
查看完整描述

4 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

全局变量的问题在于,由于每个函数都可以访问这些函数,因此越来越难以确定哪些函数实际读取和写入这些变量。

要了解应用程序的工作原理,您几乎必须考虑修改全局状态的每个函数。这可以做到,但随着应用程序的增长,它将变得越来越难以实际上不可能(或者至少完全浪费时间)。

如果不依赖全局变量,则可以根据需要在不同函数之间传递状态。这样你就可以更好地理解每个函数的作用,因为你不需要考虑全局状态。


查看完整回答
反对 回复 2019-05-29
?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

重要的是要记住总体目标:清晰度

“没有全局变量”规则是存在的,因为大多数时候,全局变量使得代码的含义不那么清晰。

但是,像许多规则一样,人们会记住规则,而不是规则的目的。

我已经看到程序似乎通过传递大量参数来简化代码的大小,以避免全局变量的恶。最后,使用全局变量可以使程序更清晰。通过无意识地坚持规则的话,原来的程序员已经失去了规则的意图。

所以,是的,全局变量通常很糟糕。但是如果你觉得最终,程序员的意图通过使用全局变量变得更加清晰,那就继续吧。但是,请记住,当您强迫某人访问第二段代码(全局变量)以了解第一部分的工作原理时,会自动产生清晰度。


查看完整回答
反对 回复 2019-05-29
?
墨色风雨

TA贡献1853条经验 获得超6个赞

我的教授曾经说过这样的话:如果正确使用它们,使用全局变量是可以的。我认为我没有擅长正确使用它们,所以我很少使用它们。


查看完整回答
反对 回复 2019-05-29
?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

只有在没有其他选择时才应使用全局变量。是的,那包括单身人士。90%的时候,全局变量被引入以节省传递参数的成本。然后发生多线程/单元测试/维护编码,你就遇到了问题。

所以是的,在90%的情况下,全局变量都很糟糕。您在大学期间不太可能看到例外情况。我能想到的一个例外是处理固有的全局对象,例如中断表。像DB连接这样的东西似乎是全球性的,但事实并非如此。


查看完整回答
反对 回复 2019-05-29
  • 4 回答
  • 0 关注
  • 543 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信