全局变量不好?

在C / C ++中,全局变量和我的教授认为的一样糟糕吗?


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

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

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


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

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

但是,像许多规则一样,人们记住规则,而不是规则打算做什么。

我已经看到通过传递大量参数来增加代码大小的程序,只是为了避免全局变量的恶意。 最后,使用全局变量会使程序更清晰。 通过无意识地遵守规则的话,原程序员失败了规则的意图。

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


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

链接地址: http://www.djcxy.com/p/83847.html

上一篇: Are global variables bad?

下一篇: Keep overflow div scrolled to bottom unless user scrolls up