我正在使用 Microsoft Visual Studio Express 2013。我有一个包含 3 个项目的解决方案。 1 个静态库和两个引用该库的项目。当 ONLY 库的优化设置为 /O2 时,我在游戏中遇到了一些奇怪的错误。当我仅针对库禁用优化时,它的运行方式与调试中的运行方式完全相同。这会是什么原因造成的?我该如何解决它?
您可能有未初始化的变量,这些变量会在调试模式下由编译器自动初始化,而不是在发布模式下。
此外,您可能会面临对齐问题和轻微的内存溢出,由于没有优化,您在调试模式下会受到保护,但当启用优化并且您的代码以不同方式对齐时,这可能会导致问题和未定义的行为。
尝试确保所有变量都已显式初始化,并且不假设:
int i;
is the same as int i = 0;