0

我使用 C++ 中的 Microsoft Visual Studio 2012 Ultimate IDE 构建了非常简单的 win32 控制台程序;

这是代码:

int _tmain(int argc, _TCHAR* argv[])
{
    int i = 0;
    i++;
    return = 0
}

逐行调试代码,我注意到了这一点:

在调试 x64 模式下argc = 1argv[0] = the program's path

在发布 x64 模式下argc = some random large numberargv[0] = some random path or simply 0x00000001

为什么是这样?

任何帮助,将不胜感激。

4

1 回答 1

5

发布模式的默认构建选项不会让您在发布模式下进行合理的调试。编译器在发布模式下使用的优化意味着编译后的代码看起来可能与您编写的代码完全不同(但逻辑上相同)。

已经有一个很好的答案,请参阅如何在发布模式下调试?

于 2013-03-28T13:22:45.270 回答