在C/ c++中,全局变量像我的教授认为的那样糟糕吗?
当前回答
迟早,您将需要更改该变量的设置方式或访问它时发生的情况,或者您只需要查找它被更改的位置。
实际上,不使用全局变量总是更好。只需编写大坝获取和设置方法,并在一天、一周或一个月后当你需要它们时通知你。
其他回答
全局变量在小程序中很好,但如果在大程序中以同样的方式使用就很糟糕了。
这意味着你可以很容易地在学习中养成使用它们的习惯。这就是你的教授想要保护你的东西。
当你更有经验的时候,在他们没事的时候学习就更容易了。
迟早,您将需要更改该变量的设置方式或访问它时发生的情况,或者您只需要查找它被更改的位置。
实际上,不使用全局变量总是更好。只需编写大坝获取和设置方法,并在一天、一周或一个月后当你需要它们时通知你。
我想用另一个问题来回答这个问题:你使用singeltons吗/ singeltons不好吗?
因为(几乎所有)单变量的使用都是一个美化的全局变量。
重要的是要记住总体目标:清晰
“无全局变量”规则的存在是因为大多数时候,全局变量使代码的含义不太清楚。
然而,像许多规则一样,人们记住的是规则,而不是规则的意图。
我曾经见过一些程序,为了避免全局变量的危害,通过传递大量参数,使代码的大小增加了一倍。最后,使用全局变量将使程序对阅读它的人更清楚。由于盲目地遵守规则的文字,原来的程序员未能实现规则的意图。
所以,是的,全局变量通常不好。但是如果你觉得在最后,程序员的意图通过使用全局变量变得更加清晰,那么就继续吧。但是,请记住,当您强迫某人访问第二段代码(全局代码)以理解第一部分是如何工作的时,清晰度会自动下降。
安全并不意味着任何一个可以操纵变量声明的全局,为这一解释这个例子中如果你有平衡作为一个全局变量在你们银行程序用户函数可以操纵以及银行职员也可以操纵这这是一个问题只有用户应该考虑到只读和退出函数,而是银行的职员可以添加量当用户亲自给的现金在桌子上。这就是它的运作方式