#1607. C++-问与答-DEV-C++使用简明教程
C++-问与答-DEV-C++使用简明教程
Background
Description
Dev C++使用简明教程 使用高级语言编程时,我们通常使用一个集成开发环境IDE(Integrated Developing Enviroment,简称IDE)来进行编辑、编译、运行和调试工作。
Dev-C++是一个Windows环境下C/C++的集成开发环境(IDE),它是一款自由软件,遵守GPL(General Public License,通用性公开许可证)。是一个免费软件,最早是由 BloodShed 公司开发的,然后由 Orwell 接手进行维护,陆续开发了几个版本, 已停止更新,也就是说Dev-C++的国外作者最终版本是2016年发布的v5.11,已经多年未更新了,现在的更新开发,都是一些爱好者基于4.9.9.2.Dev-C++ 最新版本5.11进行的。
在Windows中安装完毕之后,在桌面上会出现如下图所示的图标:
双击 Windows 桌面或程序栏的 Dev-C++ 图标,可以启动Dev-C++。
如果不想用英文界面,想改为中文界面,可单击菜单栏中“Tools"的"Environment Options"命令项,参见下图操作:
Dev C++ 支持单个源文件的编译,如果你的程序只有一个源文件(初学者基本都是在单个源文件下编写代码),那么不用创建项目,如果有多个源文件,才需要创建项目。
或者,按下Ctrl+N组合键,都会新建一个空白的源文件,如下图所示:
在空白文件中输入如下代码:
注意: 除了中文的字符串,代码必须在英文输入环境下编辑程序,即为了输入程序,你必须切换到英文输入环境下。
请及时保存源码文件
在上方菜单栏中选择“文件 --> 保存”,或者按下Ctrl+S组合键,都可以保存源文件。参见下图:
提示:C++是在C语言的基础上进行的扩展,C++已经包含了C语言的全部内容,Dev C++和大部分 IDE 一样,默认创建的是C++文件,若不加扩展名(.cpp)则自动添加之。
Dev C++界面上依次显示有菜单栏和两行工具栏。其中第一行工具栏是平时使用最多的,其各个按钮的功能如下图所示:
生成可执行程序
使用菜单“运行 --> 编译”,就可以完成 hello.cpp 源文件的编译工作:
或者,直接按下F9键(要特别注意现在很多笔记本电脑有Fn功能键会影响F9的按键),也能够完成编译工作。
如果代码没有错误,会在下方的“编译日志”窗口中看到编译成功的提示:
编译完成后,打开源文件所在的目录,会看到多了一个名为hello.exe的文件,这就是最终生成的可执行文件。
双击 hello.exe 运行,出现如下图运行窗口:
可以将编译运行合二为一:使用菜单“运行 -->编译运行”,或者,直接按下F11键,如果代码没有错误,就会出现如上图的运行窗口。
Dev-C++ 中的程序调试方法
调试(Debug)是泛指重现软件缺陷(bug)问题,定位和查找缺陷根源,最终解决缺陷的过程。 所谓调试程序,就是控制编译器一行一行地执行代码,过程中可以清楚看到每个变量值的变化情况、函数的调用过程等,进而发现程序中隐藏的错误或者低效的代码。
Dev C++调试程序
默认情况下,程序会瞬间从开头执行到结尾,除非中途出现错误(称为“运行时错误”,比如读写内存失败、数组越界等)。要想让程序暂停执行,就需要设置一个断点。
所谓断点(BreakPoint),可以简单地理解成障碍物,汽车遇到障碍物不能通行,程序遇到断点就会暂停执行。Dev C++ 给程序设置断点的方法很简单,想在哪一行代码处暂停执行,直接单击代码所在行的行号即可。
编译时可以检查出源代码中的语法错误,但是检查不出源代码中的逻辑错误。有时候程序虽然能够编译并运行,但是运行结果却不是预想的结果,那就是因为源代码中存在有逻辑错误,此时需要借助于程序调试(Debug)手段,下面简要介绍具体使用方法。
Dev-C++ 没有单独的“调试”菜单,只是在“运行[R]”菜单下面有几个菜单项与调试有关:“切换断点 F4”、“调试 F5”、“停止运行 F6”。同时在工具栏上有 “调试 F5”、“停止运行 F6”按钮。读者需要了解这几个菜单和按钮,然后按下述步骤进行操作。
在使用调试功能之前,请注意应该选择含用“调试”的编译器配置方案。参见下图:
若当前选定的编译器配置方案中不含有调试信息,Dev-C++ 会弹出对话框提示说没有调试信息,不能启动调试。请点击“确定”按钮,然后重新选择带有“调试”的编译器配置方案,再重新进行编译和调试。
【Debug、Release和Profiling是不同的编译和运行模式,简要说明如下: Debug模式:在这个模式下,编译器生成的可执行文件会包含调试信息。这些信息将被用于调试程序时跟踪代码的执行,包括变量的值,函数的调用和系统调用等等。在Debug模式下,编译器通常不对代码进行优化,这使得编译的速度比较慢。此外,这种模式下生成的可执行文件体积较大,因为调试信息也被包含在内。 Release模式:在这个模式下,编译器对程序进行一定程度的优化,以使程序更快地执行。编译器通常会移除一些调试信息,因此编译的速度比Debug模式更快。生成的可执行文件也比Debug模式下更小。 Profiling模式:这是一种专门为性能分析设计的模式。在这个模式下,编译器生成的可执行文件包含了一些额外的信息,可以用于分析程序运行时的性能瓶颈。这些信息通常被称为“profiling信息”,可以被用于分析程序的CPU使用情况、内存使用情况等等。编译器通常会对代码进行优化以提高程序运行时的性能。 需要注意的是,不同的编译器可能会对这些模式进行不同的实现。这些模式所提供的优化级别和额外的调试信息也可能因编译器不同而有所不同。因此,在使用这些模式时,需要了解具体编译器的实现方式和对应的文档。】
然后,点击工具栏上的“调试”按钮(快捷键 F5),或点击菜单“运行 –> 调试 F5”即可开始调试,参见下图:
启动调试之后, Dev-C++ 窗口下半部分时会自动显示调试面板(见上图下部),可以用鼠标点击按钮或按快捷键执行调试操作。
这时,可以用鼠标点击按钮或按快捷键执行调试操作。
其中 “下一行”按钮(F7)和“单步进入”按钮(F8)。在简单的只含有一个 main 函数的程序中,这两个按钮的功能是相同的,没有区别。而在含有多个自定义函数的程序中,这两个功能有较大的区别:“下一步(F7)”是指把当前语句作为一步执行完毕,而“单步进入(F8)”是指如果当前语句中含有函数调用则追踪进入到函数中去执行。
如果调用函数是标准函数或你认为无误的函数,就用“下一步”执行(以免追踪进入),对于怀疑有问题的函数才用“单步进入”去追踪。如果一不小心进入了标准函数(例如 printf 函数或“cout << endl;”输出),则点击“跳出函数”以返回。
(一个常见问题:有时候在 Dev-C++ 中调试 C++ 程序时,遇到形如“ << endl;”这样的语句就会卡住无法继续。对于这种情况,比如容易的解决方案是:将 endl 用 '\n' 替换,就可以解决这个问题。或者,这时请停止调试,然后点击菜单“工具”下的“编译选项”,在当前选定的编译器配置方案下,在“代码生成/优化”下的“代码优化”标签页中,为“优化级别(-O)”选择一个合理的值,例如“Debug(g)”或“Med”都可以,确定。然后再重新编译和调试。)
Format
Input
Output
Samples
Limitation
1s, 1024KiB for each test case.