调试/发布中的控制台程序

时间:2013-03-28 13:06:33

标签: c++ winapi console-application

我使用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

为什么会这样?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:5)

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

已经有了一个很好的答案,请参阅How to debug in release mode?