【发布时间】:2012-04-19 14:02:17
【问题描述】:
我在我的应用程序中发现了一件很奇怪的事情。我的 World 类中有两个静态 const 整数:
class World
{
public:
static const int CHUNK_SIZE_X = 32;
private:
static const int SHIFT_X;
};
常量SHIFT_X在对应的*.cpp文件中初始化:
const int World::SHIFT_X = Ogre::Math::Log2(World::CHUNK_SIZE_X);
现在奇怪的是 SHIFT_X 中的值是 4 而不是 5。如果我从任意范围内调用 Ogre::Math::Log2(32)它正确计算的方法 5.
这到底是怎么回事?我还需要说,这只发生在 Windows 7(使用 Visual Studio Express 10)下。我的应用程序也在 GNU/Linux (Debian Squeeze) 下运行,一切正常。
【问题讨论】: