我正在用C++编写我自己的游戏引擎,我想知道我应该在哪里初始化每帧都需要的变量,例如,每次我移动鼠标时,鼠标位置的坐标应该保存在变量中。 我应该全局初始化变量还是在函数中初始化变量,在函数中总是初始化变量new? 利在哪里,弊在哪里? 欢迎任何建议!
https://i.stack.imgur.com/wxhah.png或https://i.stack.imgur.com/2y13c.png
局部变量显示在所有调试器中(全局不是),并且速度比全局变量快,但是可用于局部变量的内存较少,您可以在不同的函数中使用它们。 选择对你更好的。
它完全取决于您的代码。
如果您只需要在一个函数(或类)中使用这些变量,请在其中初始化它们。 但是如果在多个函数上(全局)需要它,则可以全局初始化它们。
使用较少的全局变量(通常)可以使代码更有效率,更快和更安全。 搜索谷歌(或者像我一样的必应!) 有关“全局变量”的更多信息。
变量的定义应尽可能靠近它们的使用位置。 声明和初始化之间的距离越长,代码就越容易出错。
在函数中定义变量的一个好处是可以将它们标记为const
(!)。 然后通知代码的读者,这些变量永远不会改变。
记住,您是为人而不是为编译器编写代码的。 对于这个简单的用例,在内存和速度上可能没有差别--编译器将能够优化掉变量。