仅限版本中的Bug

Bug in Release only

本文关键字:Bug 版本      更新时间:2023-10-16

我使用的是Microsoft Visual Studio Express 2013。我有3个项目的解决方案。1个静态库和两个引用该库的项目。当ONLY库的优化设置为/O2时,我的游戏中出现了一些奇怪的错误。当我仅针对库禁用优化时,它的运行方式与调试时完全相同。是什么原因造成的?我该如何解决?

您可能有未初始化的变量,这些变量由编译器在调试模式下自动初始化,而不是在发布模式下。

此外,您可能会面临对齐问题和较小的内存溢出,由于没有进行优化,您在调试模式下可以免受这些问题的影响,但当启用了优化并且您的代码以不同的方式对齐时,这可能会导致问题和未定义的行为。

尝试确保所有变量都已显式初始化,并且而不是假设:

int i;
is the same as int i = 0;