-
1 C语言第一个程序
-
2 C程序的上机步骤
上机运行C程序的步骤与方法
C语言是在国内外广泛使用的一种计算机语言。C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写软件。
C程序的上机执行过程
C语言处理系统提供的开发环境是编译系统,所以,C程序的上机执行过程一般要经过如图2-1所示的四个步骤,即:编辑、编译、连接和运行。图中虚线框内是C编译系统提供的语言处理程序和C标准库函数,单线框内是用户程序。下面分别说明上机执行过程。

(1)编辑C源程序
编辑是用户把编写好的C语言源程序输入计算机,并以文本文件的形式存放在磁盘上。其标识为:“文件名.C”。其中文件名是由用户指定的符合C标识符规定的任意字符组合,扩展名要求为“.C”,表示是C源程序。例如file1.c、t.c等。用于编辑源程序所使用的软件是编辑程序。编辑程序是提供给用户书写程序的软件环境,可用来输入和修改源程序。如DOS系统提供的全屏幕编辑程序 edit;UNIX系统提供的文本行编辑程序ed;还有许多功能更强的专用编辑程序,如 PE、NE,以及Windows系统提供的写字板,文字处理软件WPS、Word等都可以用来编辑C语言源程序。一般语言系统也会带有自己的编辑程序。
(2)编译C源程序
编译是把C语言源程序翻译成用二进制指令表示的目标文件。编译过程由C编译系统提供的编译程序完成。编译程序自动对源程序进行句法和语法检查,当发现错误时,就将错误的类型和所在的位置显示出来,提供给用户,以帮助用户修改源程序中的错误。如果未发现句法和语法错误,就自动形成目标代码并对目标代码进行优化后生成目标文件。目标程序的文件标识是:“文件名.obj”。这是系统规定的形式,扩展名“.obj”是目标程序的文件类型标识。不同的编译系统,或者不同版本的编译程序,它们的启动命令不同,生成的目标文件也不相同。
(3)程序连接
目标程序计算机还是不能执行的。程序连接过程是用系统提供的连接程序(也称链接程序或装配程序)将目标程序、库函数或其他目标程序连接装配成可执行的目标程序。可执行程序的文件名为:“文件名.exe”,扩展名“.exe”是可执行程序的文件类型标识。绝大部分系统生成的可执行文件的扩展名是“.exe”,但UNIX系统中,生成的可执行文件自动确定为“a.out”,除非在编译时用户特别规定自己的文件名。
有的C编译系统把编译和连接放在一个命令文件中,用一条命令即可完成编译和连接任务,减少了操作过程。
(4)运行程序
运行程序是指将可执行的目标程序投入运行。以获取程序处理的结果。如果程序运行结果不正确,可重新回到第一步,重新对程序进行编辑修改、编译和运行。与编译、连接不同的是,运行程序可以脱离语言处理环境。因为它是对一个可执行程序进行操作,与C语言本身已经没有联系,所以可以在语言开发环境下运行,也可直接在操作系统下运行。
第一个C语言源程序编写方法
万事开头难
前面我们给出了一段完整的C语言代码,就是在显示器上输出“C语言中文网”,如下所示:
#include <stdio.h>
int main()
{
puts("C语言中文网");
return 0;
}
本节我们就来看看如何通过 Dev C++ 来运行这段代码。
Dev C++ 支持单个源文件的编译,如果你的程序只有一个源文件(初学者基本都是在单个源文件下编写代码),那么不用创建项目,直接运行就可以;如果有多个源文件,才需要创建项目。
1) 新建源文件
打开 Dev C++,在上方菜单栏中选择“文件 --> 新建 --> 源代码”:
或者按下Ctrl+N组合键,都会新建一个空白的源文件,如下图所示:
在空白文件中输入本文开头的代码:
在上方菜单栏中选择“文件 --> 保存”,或者按下Ctrl+S组合键,都可以保存源文件。
注意将源文件后缀改为.c。
小小的提示:C++是在C语言的基础上进行的扩展,C++已经包含了C语言的全部内容,所以大部分 IDE 默认创建的是C++文件。但是这并不影响使用,我们在填写源文件名称时把后缀改为.c即可,编译器会根据源文件的后缀来判断代码的种类。上图中,我们将源文件命名为hello.c。
2) 生成可执行程序
在上方菜单栏中选择“运行 --> 编译”,就可以完成 hello.c 源文件的编译工作。
或者直接按下F9键,也能够完成编译工作,这样更加便捷。
如果代码没有错误,会在下方的“编译日志”窗口中看到编译成功的提示:
编译完成后,打开源文件所在的目录(本教程中是 E:\cDemo\),会看到多了一个名为hello.exe的文件,这就是最终生成的可执行文件。
之所以没有看到目标文件,是因为 Dev C++ 将编译和链接这两个步骤合二为一了,将它们统称为“编译”,并且在链接完成后删除了目标文件,所以我们看不到。
双击 hello.exe 运行,并没有输出“C语言中文网”几个字,而是会看到一个黑色窗口一闪而过。这是因为,程序输出“C语言中文网”后就运行结束了,窗口会自动关闭,时间非常短暂,所以看不到输出结果,只能看到一个“黑影”。
对上面的代码稍作修改,让程序输出“C语言中文网”后暂停下来:
#include <stdio.h>
#include <stdlib.h>
int main()
{
puts("C语言中文网");
system("pause");
return 0;
}
system("pause");语句的作用就是让程序暂停一下。注意代码开头部分还添加了#include <stdlib.h>语句,否则system("pause");无效。
再次编译,运行生成的 hello.exe,终于如愿以偿,看到输出结果了,如下图所示:
按下键盘上的任意一个键,程序就会关闭。
更加快捷的方式
实际开发中我们一般使用菜单中的“编译 --> 编译运行”选项:
或者直接按下F11键,这样能够一键完成“编译 --> 链接 --> 运行”的全过程,不用再到文件夹中找到可执行程序再运行。这样做的另外一个好处是,编译器会让程序自动暂停,我们也不用再添加system("pause");语句了。
删除上面代码中的system("pause");语句,按下F11键再次运行程序,结果如下:
4) 总结
现在,你就可以将 hello.exe 分享给你的朋友了,告诉他们这是你编写的第一个C语言程序。虽然这个程序非常简单,但是你已经越过了第一道障碍,学会了如何编写代码,如何将代码生成可执行程序,这是一个完整的体验。
在本教程的基础部分,教大家编写的程序都是这样的“黑窗口”,与我们平时使用的软件不同,它们没有漂亮的界面,没有复杂的功能,只能看到一些文字,这就是控制台程序(Console Application),它与DOS非常相似,早期的计算机程序都是这样的。
控制台程序虽然看起来枯燥无趣,但是它非常简单,适合入门,能够让大家学会编程的基本知识;只有夯实基本功,才能开发出健壮的GUI(Graphical User Interface,图形用户界面)程序,也就是带界面的程序。


