当前位置:文档之家› DevCpp使用简介

DevCpp使用简介

DevCpp使用简介
DevCpp使用简介

Dev-C++使用简介

一、C/C++语言的程序

一个C/C++语言程序由一系列变量和函数构成,其中有且仅有一个主函数。主函数是程序的入口,程序启动后将从主函数的第一条语句开始执行,执行到主函数的最后一条语句结束。标准的C/C++语言中,主函数的原型是”int main(int argc, char** argv)”,”argv”是一个字符串型数组,”argc”是该数组的长度。用户在启动一个C/C++语言的程序时,将一个命令行(command line)提交给操作系统,其中的第一个单词(word)是要执行的程序的名称。操作系统在收到命令行后,统计其中单词的个数”argc”、并把每个单词解析出来作为”argv”的一个元素,然后将这两个参数传递给”argv[0]”所指定的主函数、并开始执行该主函数。如果一个程序的主函数原型是”int main(int argc, char** argv)”,则将该程序称为命令行程序。命令行程序的人机交互界面是键盘和字符终端,程序的输入是键盘输入的字符、输出是字符终端显示的字符串。

下图1演示如何在windows环境下进入命令行界面,图2演示如何在命令行界面下启动可执行程序。在命令行界面下,用户可以输入命令行进行程序启动。命令行的第一个单词是要执行的程序的名称,后面的单词是传递给该程序主函数的参数。例如,”dir”是windows 自带的一个命令行程序,用于显示当前文件目录下的文件;”cd”是windows自带的一个命令行程序,用于从一个文件目录切换到另一个文件目录,新的文件目录作为命令行参数输入给该程序。在命令行界面下输入”dir”时,操作系统将启动dir程序的主函数,其中参数argc的值为1、数组argv的长度为1,argv[0]的值为”dir”。在命令行界面下输入”cd public”时,操作系统将启动cd程序的主函数,其中参数argc的值为2、数组argv的长度为2,argv[0]的值为”cd”、argv[1]的值为”public”。cd程序的主函数将对argv[1]的值进行相应处理,完成当前目录的切换。

图1 在windows环境下进入命令行界面。首先从windows的主菜单搜索框中输入”cmd”并回车,即进入右边的命令行界面。

图2 通过windows 的命令行界面,启动命令行程序,分别启动无输入参数的命令行程序dir 和带一个输入参数的命令行程序cd 。

在进行C/C++语言的编码时,程序源代码一般分为头文件和函数定义文件。头文件的后缀为”.h ”, 一般用于定义一系列的符号,分别表示程序中用到的常量、复杂数据类型、全局变量、和函数原型等。函数定义文件的后缀为”.c ”/”.C ”/”.cpp ”,一般用于描述程序中每个函数执行的具体代码。在程序开发时,可以编写任意数量的头文件、任意数量的函数定义文件,每个头文件定义不同的符号,每个函数定义文件描述不同函数的执行代码。对于关系密切的函数,通常会将它们的定义放在同一个函数定义文件中。每个函数定义文件中,最多只能定义一个主函数。源代码文件经过编译和连接后,由编译系统变换成最终的可执行程序。编译过程是由编译系统对程序员编写的源文件进行代码变换,将C/C++语言的语句变换成计算机能够识别的二进制代码。每个函数定义文件编译成功后,将生成一个后缀为”.obj ”的二进制代码文件。连接过程是由编译器对主函数运行时所执行的指令、所访问的变量分配具体的内存地址,这些指令和变量可能来自不同的二进制代码文件,由编译系统统一编址后生成可执行代码。每个可执行代码中有且仅有一个主函数,编译器在进行二进制代码连接时,将从主函数出发,依次检查所调用的函数、各函数所访问的变量,对这些函数执行的指令、访问的变量进行统一编址。

一个可执行程序的执行代码通常由多个二进制代码文件连接而成,每个二进制代码文件是由一个函数定义文件变换而来的。在程序开发时,通常用一个专门的文件makefile ,描述如何编译和连接所编写的源文件,包括在生成一个可执行程序时需要将哪些二进制文件连接在一起。一些编程环境如Dev-C++、visual studio 则会自动生成makefile 文件。

二、 创建和维护代码项目(project)

在Dev-C++编程环境中,代码编译和连接的基本单位是代码项目(project)。所谓一个”project ”,是编程人员为实现某个功能而编写一组源代文件、以及为编译和连接这些源文件而编写的makefile 文件。一个”project ”可以实现一个完整的程序,也可以只实现一组函数。Dev-C++的每个”project ”有一个唯一的makefile 文件和若干个*.h/*.c/*.C/*.cpp 文件,其中makefile 可以由系统根据编程人员定义的*.h/*.c/*.C/*.cpp 文件自动生成。如果由Dev-C++自

动生成makefile文件,则在”project”中最多定义一个主函数。

1、从菜单栏选择”File->New->Project”,如图3所示。

图3 创建项目的菜单

2、创建一个命令行程序的代码项目时,在弹出的对话框中选择”Console Application”,并输

入项目的名称,如图4所示。Dev-C++系统将自动产生图5所示的命令行程序源代码,该源代码只有一个main.cpp文件,其中只定义了主函数。编程人员将可以对该主函数的函数体进行改写,也可以编写其他的函数和源代码文件。命令行程序人机交互界面是键盘和字符终端,程序的输入是键盘输入的字符、输出是字符终端显示的字符串。

图4 创建命令行程序的代码项目

图5 Dev-C++系统将自动产生的命令行程序源代码

3、当编程人员希望将程序代码拆分到多个源代码文件中时,可以从菜单栏选择”Project->

New File”,系统将会创建一个未命名的空文档、并在编程人员存储该文档时提示输入文档的名称。所创建的源代代码文档将自动加入到当前”Project”,所创建的文档可以是*.h 文档、也可以是*.c/*.C/*.cpp文档。

图6 创建新的源文件并将所创建的源文件加入当前”Project”

4、编程人员也可以从菜单栏选择”Project-> Add To Project”,直接将一个已有的文档添加到

当前”Project”。

三、程序编译、调试和运行

1、设置程序的命令行输入参数。从菜单栏选择”Execute->Parameters”,系统将会弹出一

个”Parameters”对话框,在”Parameters to pass to your program”栏里可以输入传递给主函数的参数。所输入的每个单词将作为一个参数传递给程序的主函数。图7(a)演示如何在

Dev-C++中设置程序的命令行参数、以及如何在主函数中获取命令行参数;图7(b)是该程序的输出结果。

(a)设置程序的命令行参数

(b)命令行参数中,每个单词分别作为一个字符串传递给主函数

图7 在Dev-C++中设置程序的命令行参数

2、调试程序的正确性。在Debug模式下,对程序进行跟踪执行,实时观察程序中变量值的

变化。首先,将程序的某个位置设置为断点。在Debug模式下运行程序时,到达断点后就进入跟踪执行模式。在跟踪执行模式下,可以通过”Add Watch”对话框设置对哪些变量进行跟踪,被跟踪变量的值将实时显示在屏幕左部的Debug栏中。若要将某个位置设置为断点,就用鼠标点击该位置所在的行号。若要实时跟踪某个变量的值,则点击屏幕下方的“Debug-> Add Watch”按钮,然后在所弹出的对话框中输入要跟踪变量的名称。例

如图8(a)中,用鼠标点击行号9就设置了一个断点,并将变量a和b添加为被跟踪变量。

当通过“Debug-> Debug”按钮运行程序时,程序将在运行到断点后进入跟踪执行模式,并将被跟踪变量的当前值显示在屏幕左部的Debug栏。在跟踪执行模式下,可以通过“Debug-> Next line”按钮每次执行一条语句,从而观察程序的执行路径、以及程序变量的实时变化,如图8(b)所示。

(a)设置断点和添加跟踪变量

(b)在跟踪执行模式下单步执行和实时观察程序变量的值

图8 在Dev-C++中采用Debug调试程序的正确性

3、调试程序的性能。通过菜单“Execute-> Run”执行程序后,可通过菜单“Execute-> Profile

Analysis”菜单查看程序执行过程中各个函数被调用的次数、消耗的时间等,由此发现程序的主要开销所在,如图9所示。

图9 通过Profile Analysis查看程序运行过程中各个函数的时间消耗

相关主题
文本预览
相关文档 最新文档