《Dev C++使用说明.doc》由会员分享,可在线阅读,更多相关《Dev C++使用说明.doc(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流Dev C+使用说明【精品文档】第 9 页附录3 Dev-C+操作手册Dev-C+是一个可视化集成开发环境,可以用此软件实现C/C+程序的编辑、编译、链接、运行和调试。本手册中介绍了Dev-C+常用的一些基本操作,包括创建、编译、链接、运行和调试C源程序和C工程,希望每一位读者都要熟练掌握。1. 启动Dev-C+方法一:1. 首先鼠标点击任务栏中的“开始”按钮,选择“程序”菜单项,然后选“程序”下的子菜单项“Bloodshed Dev-C+”项,显示该项下的子菜单。2. 单击”Dev-C +”菜单项,即可启动Dev-C +集成开发工具。(如图1所示)图1
2、 启动Dev-C+方法二:我们也可以通过直接单击桌面上的Dev-C+的图标来启动该开发工具。2. 新建源程序1要新建一个源程序,可以从主菜单选择“File” “New” “Source File”(中文环境下为“文件” “新建” “源代码”)即可(如下图2所示)。图2新建源程序如果大家看到界面上的字是中文的,则可以根据以下操作将界面改为英文。点击主菜单“工具”环境选项”,在弹出的对话框中选择“界面”页,在Language下拉列表中选择“English”即可,如下图3所示。此时界面上的菜单、工具条等就会全部显示其英文命名。图3 更改界面语言2此时屏幕右下侧出现一片白色区域,可以在此输入新的程序。
3、如下图4所示。输出标签页源程序编辑区域工具栏菜单图4 Dev-C+开发环境功能布局3保存源程序到硬盘。一个好的习惯是创建了一个新程序后,在还未输入代码之前先将该程序保存到硬盘某个目录下,然后在程序的编辑过程中我们也要经常性地保存程序,以防止机器突然断电或者死机导致工作成果丢失。要保存程序,只需从主菜单选择“File”Save”就可以将文件保存到指定的硬盘目录。如图5所示。图5 保存文件此时会弹出一个对话框,如图6所示。在此我们需要指定文件要存放的目录(此处为F:temp),文件名称(此处为test)以及保存类型(此处为*.c)。需要注意的是,在保存类型处一定要选择“C source files
4、(*.c)”,意思是保存的是一个C文件。在点击右下角的保存按钮后,在temp目录下将会出现一个名为test.c的C源文件。图6 指定要保存文件的路径和名字对于刚创建且未进行任何编辑的程序,主菜单的“File”Save”菜单是灰色的,此时需要从主菜单选择“File”Save As”来保存;此外,对于正在编辑的程序,如果你想对其进行重新命名或者将其保存到另一个磁盘目录下,也可以用“File”Save As”菜单,如图7所示。图7 使用Save As保存文件4在程序编辑区域编辑程序。如图8所示。在输入程序的过程中记得要随时对程序进行保存(使用菜单“File”Save”,或者用组合键Ctrl+s),此
5、时会将程序以相同名字重新保存到之前指定的目录下,如F:temp,覆盖掉之前的同名文件。图8在程序编辑区域编辑程序需要注意以下两点:1)编辑时除了字符串和注释,其余部分要使用半角字符。全角字符和半角字符外观很像,尤其是全角分号和半角分号,全角括号和半角括号,不仔细看很难分辩清楚,因此程序输入时要小心,避免此类问题。2)在Dev-C+环境下,为了查看程序运行结果,需要在main函数的return语句前加上:system(PAUSE)或system(pause);这样程序运行到该语句时,结果显示屏幕将会停留,让我们有时间观察程序的输出结果。否则结果显示屏幕将会一闪而过。3. 预处理、编译、链接程序从
6、主菜单选“Execute”“Compile”(“运行”“编译”)或快捷键“Ctrl+F9”,可以一次性完成程序的预处理、编译和链接过程。如果程序中存在词法、语法等错误,则编译过程失败,编译器将会在屏幕右下角的“Compile Log”标签页中显示错误信息,如下图9所示,并且将源程序相应的错误行标成红色底色,如图10所示(由于删除了printf语句后面的分号,编译时报错,提示system语句前面的语句有语法错误(syntax error))。图9 编译错误显示图10 编译提示错误行“Compile Log”标签页中显示的错误信息是寻找错误原因的重要信息来源,每一位读者都要学会看这些错误信息,并且
7、每一次你碰到错误并且最终解决了错误时,要记录错误信息以及相应的解决方法。这样以后看到类似的错误提示信息,能熟练反应出是源程序哪里有问题,从而提高程序调试效率。排除了程序中存在的词法、语法等错误后,编译成功,此时在源文件所在目录下将会出现一个同名的.exe可执行文件(如test.exe)。双击这个文件, 即可运行程序。4. 运行程序对程序进行预处理、编译、链接后,可以有两种方法运行程序。第一种方法是双击生成的.exe文件;第二种方法是直接在Dev-C+环境下从主菜单选“Excute”“Run”或快捷键“Ctrl+F10”运行程序。如图11所示。图11 运行程序5. 调试程序通过预处理、编译和链接
8、的程序仅仅说明该程序中没有词法和语法等错误,而无法发现程序深层次的问题(譬如算法不对导致结果不正确)。当程序运行出错时,我们需要找出错误原因。仔细读程序来寻找错误固然是一种方法,但是有时光靠读程序已经解决不了问题,此时需要借助于程序调试(Debug)手段。这是一种有效的排错手段,每一位读者都需要掌握。调试程序的步骤为:第一步:设置程序断点;第二步:进入调试运行状态;第三步:单步执行程序。在执行过程中通过设置、查看watch窗口来辨别程序运行状态是否正确。1设置程序断点。调试的基本思想是让程序运行到你认为可能有错误的代码前,然后停下来,在人为控制下逐条语句的运行。通过在运行过程中查看相关变量的值
9、以及程序执行路径,来找到错误所在位置、分析错误产生原因。如果想让程序运行到某一行前能暂停下来,就需要将该行设成断点。具体方法是在代码所在行行首单击,该行将被加亮。默认的加亮颜色是红色。如图12所示,将system(“pause”)语句设成断点,则程序运行完printf语句后,将会暂停。需要说明的是,你可以在程序中根据需要设置多个断点。如果想取消不让某行代码成为断点,则在代码行首再次单击即可,此时代码的红色底色消失。图12 设置一个断点2进入调试运行程序状态。设置断点后,此时程序运行进入debug(调式)状态。要在调试状态下运行程序,就不能使用主菜单“Execute”“Run”,而是需要用主菜单
10、“Debug”“Debug”(或者按快捷键F8),进入调试运行状态。如图13所示。图13 调试菜单项程序将运行到第一个断点处暂停,此时断点处加亮色由红色变成蓝色,表示接下去将运行蓝色底色的这行代码,如图14所示。图14程序运行到断点处注意:有时你会发现即使设置了断点,点击了主菜单“Debug”“Debug”,程序还是不在断点处停留。解决方法:取消断点,重新编译程序,然后再设置断点,点击主菜单“Debug”“Debug”即可。3单步执行程序。要想运行蓝色底色的代码,可以使用图15所示的“Next Step(F7)”、“Step Into(Shift F7)”、“Continue(Ctrl F7)
11、”,“Run to Cursor(Shift F4)”等(具体含义见下面的介绍)。在学习函数之前,一般用的是Next Step和Continue。学习函数后,还会用到Step Into。Debug菜单如左图所示。和单步运行相关的菜单项说明如下:Next Step(F7):运行下一行代码;如果下一行是对函数的调用,不进入函数体;Step Into(shift F7):运行下一行代码,如果下一行是对函数的调用,则进入函数体;Continue(Ctrl F7):运行到下一个断点处;Run to Cursor(Shift F4):运行到光标所在处; 图15 Debug菜单在调试程序时,往往要观察程序运
12、行过程中变量的值,以检测程序对变量的处理是否正确,可以在调试时,选择主菜单“Debug”-“Add Watch”(F4)这一项,我们会看到弹出提示框用于输入变量名,这时可以根据调试需要,输入要观察的变量名,该变量随后将会显示在最左边Explore的Debug页中,如下图16所示。如果左边小窗口中的当前页不是Debug页,则可以点击Debug标签使之成为当前页。图16 查看变量当前值6. 创建、编译、运行工程到目前为止,编写的程序都是放在一个“C”文件中。如果程序很小又很紧凑,确实应该把所有的源代码写在一个“C”文件中。但如果你发现自己编写了许多函数(特别是通用函数),那么你就应该把程序分解成几
13、个源文件(也叫做模块)。把一个程序分解成几个源文件的过程叫做模块化程序设计(modular programming)。模块化程序设计技术提倡用几个不同的结构紧凑的模块一起组成一个完整的程序。例如,如果一个程序中有几种、屏幕函数和数据库函数,你就可以把这些函数分别放在三个源文件中,分别组成实用模块、屏幕模块和数据库模块。工程用于管理同一个程序的多个文件,包括源文件和头文件等。在此,我们介绍如何创建一个新的工程,如何把文件添加到工程,如何从工程中删除文件,如何编译、链接、运行工程。这些是很基本的操作,请读者熟练掌握。假设我们有一个名为“猴子选大王”的工程,工程包含的文件如下图17所示。下面我们对这
14、些文件做一介绍:猴子选大王.dev:这是Dev-C+环境下的工程文件,一个工程对应一个这样的文件,里面记录了工程相关的信息,例如工程包含哪些文件、各个文件的名称和保存路径等。读者可以用文本编辑器打开看一下该文件的内容。当要打开工程的时候,只需要双击该文件即可。linkNode.h和link.h:工程包含的两个用户自定义头文件。main.c和link.c:工程包含的两个源文件。main.o和link.o:main.c和link.c分别编译得到的目标文件。猴子选大王.exe:对工程进行编译、链接后得到的可执行程序。Makefile.win: 对工程进行编译时Dev-C+环境创建的文件。可见,mai
15、n.o、link.o、Makefile.win和猴子选大王.exe这四个文件是对工程进行编译链接得到的文件。图17 一个工程包含的文件1新建工程点击菜单,选择File(文件) new(新建) Project (工程),如图18所示。图18 新建工程在弹出窗口的Basic页中选择Console Application(控制台应用程序),输入工程名称,选择是C Project(C工程),点击OK。如图19所示。图19 设置工程属性此时弹出对话框,要求指定工程存放路径。设置好路径后点击保存。此时系统往工程中自动加入main.c文件,如图20所示,文件中的代码是系统自动生成的。图20 工程中的main
16、.c文件2向工程中添加文件首先将已经存在的linkNode.h、link.c和link.h三个文件拷贝到工程所在目录(假设为G:temptestProject)下,然后点击主菜单Project(工程)-Add to Project(添加),如图21所示,在弹出的对话框中选择要添加的源文件,然后点击打开,如图22所示。图21 添加文件到工程图22 选择要添加的文件此时在左侧工程管理Project页中出现了加入的这3个文件,如图23所示。图23 Project页出现了新加入的文件在当前工程中还可以新建或移除一个文件,选择Project(工程) New File(新建文件)创建一个新的文件,然后在保
17、存路径处指定路径,即将该新建的文件添加到工程中。而如果选择Project(工程) Remove Form Project(从工程移除),则从工程中移除文件(注意该文件还存在于磁盘上,从工程中删除只是解除了和工程的关系)。3编译和运行工程的编译和运行和单文件程序的编译和运行基本一样。但是在工程中存在多个文件的情况下,可以使用主菜单Execute(运行)-Compile(编译)(CtrlF9),编译当前工程中的所有文件;也可以使用主菜单Execute(运行)- Compile current file(编译当前文件)(Shift+ CtrlF9),编译源程序编辑区域当前打开的文件。7. 打开一个已
18、经存在的程序或工程打开一个已经存在的源文件或工程进行编辑是最常见的操作。方法是点击主菜单的”File”-”Open Project or File”(打开文件或工程),如图24所示,如果是打开单个文件,则在弹出的对话框中指定文件所在的路径,选择要打开的文件即可;如果是打开工程,则在弹出的对话框中指定工程所在的路径,选择要打开的工程对应的.dev文件即可。图24 打开文件或工程8. 提高程序书写风格的一些操作1整段缩进运用适当的缩进,可以提高代码的可读性。但是如果靠人工一行一行的缩进,那将是非常枯燥的事情。Dev-C+环境支持整段缩进。方法是首先选中要缩进的代码段,然后点击主菜单下的”Edit”
19、-“Indent”,如图25所示,即可将整段代码右移N个字符。图25 整段缩进代码每一次缩进要移动的字符数可以自己定制,方法如下:点击主菜单下的”Tools”“Edit Options”,在弹出的对话框中的General标签页中进行设置,将Tab Size设置成我们希望的数字,建议设成4,如图26所示。该对话框提供了定制Dev-C+的界面编辑风格的功能,有兴趣的读者可以自己研究一下。也可以点击”Edit”“Unindent”使整段代码往左移。图26 定义Tab Size的大小2插入程序说明为了简要说明程序的功能和各个函数、变量的作用,增强程序的可读性,我们可以在程序中插入适当的说明。点击”Ed
20、it”“Insert”“Comment Header”,如图27,从而在程序编辑区光标处插入一段注释,用于说明程序名称、作者和程序功能等,插入后的效果如图28所示。图27 插入程序说明这些就是自动插入的程序说明部分图28 插入后的程序说明附录4 Dev-C+环境下常见编译错误信息中英文对照说明:此编译错误的对照信息适用于Dev-C+环境中基本的C语言编程,对于C+(类)编程不包括在其中。英文提示信息中文解释补充说明xxx undeclared (first use in this function)名为xxx 的常量或变量未定义或声明一般由以下几种情况导致此编译错误的发生:1变量未定义就使用;
21、2当变量定义后,使用时变量拼写错误;3当使用在其他文件中定义的全局变量时,使用前未对该变量进行声明;syntax error before xxx在xxx之前有语法错误通常是由于xxx之前缺少符号(如分号)或者xxx之前有不正确的符号导致的。stray 163 in program通常是由于在字符串和注释以外的地方使用了全角字符。全角字符和半角字符外观很像,尤其是全角分号和半角分号,全角括号和半角括号,不仔细看很难分辩清楚,因此程序输入时要小心,避免此类问题。assignment of read-only variable xxx对只读变量xxx赋值通常是由于定义变量时前面加了const修饰符
22、使其成为了只读变量,但又试图对该变量赋值导致的(注意:允许在定义的同时对只读变量进行初始化)。invalid lvalue in assignment赋值时无左值通常是由于赋值操作符的左边不是变量导致的。如:对由#define定义的常量进行赋值case label does not reduce to an integer constantcase标号后面的常量表达式的值不是整常数值通常是由于switch关键字后面的表达式的值不是一个整型(字符型)导致的。incompatible types in assignment赋值类型不匹配通常是两个类型不一致且不能转换的变量在相互赋值时导致的。如ch
23、ar string10; string=123;xxx.h: No such file or directory.没有xxx.h这样的文件或目录通常是由于程序中要包含头文件xxx.h,由于相关文件夹下并没有这个文件导致的。 Linker error undefined reference to xxx名为xxx 的函数未定义一般由以下几种情况导致此编译错误的发生:1函数未定义就调用;2调用函数时函数名拼写错误;conflicting types for xxx函数xxx类型不匹配一般由以下几种情况导致此编译错误的发生:1函数原型中的返回值类型和函数定义中的不一致;2函数原型中的参数类型和函数定
24、义中的不一致;3函数原型中的参数个数和函数定义中的不一致;4函数调用在函数定义之前,且调用前未对函数原型进行声明,使得编译器认为函数的参数和返回值均是默认的int类型,而实际函数定义中的参数和返回值至少有一个不是int类型。too few arguments to function xxx 或者too many arguments to function xxx调用函数xxx时,实参个数太少或太多通常是由于函数调用时的实参个数少于或多于函数定义的形参个数。xxx redeclared as different kind of symbolxxx被重新定义通常是由于函数内定义的变量和函数的参数同名引起的。assignment makes pointer from integer without a cast对整数未进行类型转换就赋值给指针变量注意:不能把0之外的整数赋给指针变量。assignment from incompatible pointer type不同类型的指针变量之间的赋值注意:如果两指针类型相同,可以进行相互赋值;如果两个指针中有一个是void * 类型,可以进行相互赋值;否则必须用强制类型转换运算符把赋值号右边指针的类型转换为赋值号左边指针的类型。