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

标签 c++ winapi console-application

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

这是代码:

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

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

在 Debug x64 模式下,argc = 1argv[0] = 程序路径

在 Release x64 模式下,argc = 一些随机大数argv[0] = 一些随机路径或简单的 0x00000001

这是为什么?

如有任何帮助,我们将不胜感激。

最佳答案

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

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

关于c++ - 调试/发布中的控制台程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15682639/

相关文章:

c++ - 为什么赋值运算符重载会创建一个对象的拷贝?

C++:将指针转换为 int 然后再转换回指针是否安全?

c++ - DialogBoxIndirect 创建的对话框比要求的大

c++ - 如何删除窗口的标题和边框,以及如何制作自定义样式的 UI?

c - Windows : the C library or corresponding Win32 API functions? 下层是什么

C# 使用 Outlook 发送邮件

c++ - pugixml 解析器获取元素值

c++ - 如何在 C++ 中读取 .json 文件?

c - 我的 for 循环出了什么问题?当我在 C 语言的字母猜谜游戏中只输入 1 个输入时,它会转 2 次

c# - 如何自动关闭控制台应用程序窗口