【发布时间】:2010-12-14 23:14:10
【问题描述】:
我在我的一个 AI 项目中遇到了一个有趣的问题。我正在尝试格式化一些调试文本,但发生了一些奇怪的事情。这是一段代码:
float ratio = 1.0f / TIME_MOD;
TIME_MOD 是一个静态浮点数,在单独的文件中声明。该值是根据另一个类中的用户输入进行修改的(我已经验证该值在“输入”函数的范围内仍在调试时已更改),但是每当我尝试在外循环中除以它时,我都会得到相同的号码。 (1除以TIME_MOD的初始值)。
我是否遗漏了有关静态变量和文件范围的内容?
【问题讨论】:
-
我不认为你可以外部静态变量。因此我没有在“比率”文件中声明它。
-
向我们展示TIME_MOD的声明
-
澄清一下,在我解决问题之前,声明是“static float TIME_MOD = 0.1f;”
-
在这种情况下,它是具有内部链接的浮点变量的定义。每个翻译单元都有自己的浮点数,称为“TIME_MOD”。不要在全局和命名空间范围内使用
static。它没有做你认为它做的事情。