全局变量是否不断更新

时间:2016-03-13 07:52:31

标签: c++

我知道全局变量很糟糕,但是我有一个checksettings函数,每次运行都会运行。 http://pastebin.com/54yp4vuW粘贴箱包含一些检查设置功能。在我添加GetPrivateProfileIntA之前,一切正常。现在,当我运行它时,它就像地狱一样落后。我只能假设这是因为它不断加载文件。所以我的问题是,全局变量是否不断更新。 (即如果我把它放在全局变量中它会停止滞后) 谢谢:)

2 个答案:

答案 0 :(得分:-1)

假设我正确地解释了你的问题,那么不,全局变量不会不断更新,除非你在代码中明确地这样做。所以,是的,将这些调用放在全局变量中将摆脱滞后。

答案 1 :(得分:-1)

您还没有提供有关设计的任何详细信息,但整个应用程序中都可以看到全局变量,并在写入时获得更新。 读取该全局变量的多个进程/线程将读取相同的更新值。 但同步读/写需要使用同步机制,如互斥,条件变量等等。

在您的情况下,您需要决定何时为所有这些设置调用GetPrivateProfileIntA()。 所有这些设置是不断更新还是只是其中的一小部分?确定需要定期监控的那些,只加载那些。

如果一个设置是有状态的,意味着该类的所有对象都引用了该设置的单个副本,那么我将使用静态类变量而不是普通的全局变量。

或者,您可以在需要时对GetPrivateProfileIntA()进行JIT调用,而不必担心将设置存储在全局变量中。