我对这个问题有点吃惊 - 在 Debug模式下根本不会出现这个问题,但在 Release模式下感觉我几乎无能为力来解决它。
这是 VS2013 内部发生的事情的屏幕截图:
我初始化nResult
为1L,内部显示为3422785012,在Debug模式下,这个值确实是1L。
关于为什么显示的值甚至不接近我为 nResult
设置的初始值有什么想法吗?我试过使用编译器设置 - 在 Debug模式下这段代码运行良好。
最佳答案
您的代码很可能已优化
。这意味着编译器以您的源代码与编译器生成的内容不匹配的方式移动和删除了代码。
要么调试未优化的代码,要么在充分了解源代码可能与正在执行的实际指令不匹配的情况下调试优化代码。
如果您想调试发布版本但在调试器中看到正确的值,请转到 Visual Studio 中项目的属性,转到 C/C++ 部分,然后禁用优化。重建。
关于c++ - 将 DWORD 显式初始化为 1,但调试器显示超出范围的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23348983/