上机运行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,图形用户界面)程序,也就是带界面的程序。
C程序上机步骤
[键入文档副标题]
摘要:[键入文档摘要]
一、C语言上机流程图

二、文字解释
前面已经了解了一些简单的C程序。下面将介绍如何在计算机中输入这些程序并让计算机执行。
用C语言编写的程序称为源程序,而计算机只能识别和执行由0和1组成的二进制指令,为了让计算机能够识别并运行源程序,必须用一种称为编译程序(或编译器)的软件把源程序翻译成二进制的目标程序,然后将该目标程序与系统的库函数和其他目标程序链接起来,形成可执行的目标程序。
运行一个C程序的完整步骤是:
输入或编辑源程序→编译→链接→运行
以上过程如图1-1所示。其中,实线表示操作流程,虚线表示文件的输入/输出。假设已编辑好一个源程序文件a.c,对该文件编译后产生目标文件a.obj,再将该文件和系统的库函数及其他目标文件链接,得到可执行文件a.exe,这个文件就可以直接运行。
由于每个源程序都需要经过上述步骤,而这些步骤需要各种应用程序来实现,这就给开发者带来
了不便。目前有许多集成开发环境(IDE)将程序的编辑、编译、链接和运行等操作集成在一个界面上使用十分方便,例如Turbo2.0、 Visual++、5 Dev-C++等软件
在实际操作过程中还需注意以下几点。
①每种编程语言都有自己的一套规则,称为语法规则。如果所写程序出现与语法规则不符之处将不能通过编译,同时编译器会提示错误。具体规则将在本书各章中陆续说明。很多语法错误是由于程序员粗心大意而导致的输入错误,这种错误很难查出,因此在编写程序时应仔细地输入程序代码。
出,因此在编写程序时应仔细地输入程序代码。
②尽管消息窗口中会提示每一个出错的行号,但有时错误并不是该行引起的。例如,如果程序中第2行的语句末尾遗漏了分号,编译后会提示第3行缺少分号。因此修改错误时不要过分依赖出错行号,应根据错误原因来分析和修改。
③编译器在编译若干行检测到几个错误后会停止编译,然后直接显示编译消息框。修改完这几个错误后重新编译可能会提示更多错误,但这不意味着之前所做的修改是错误的。
④警告不影响程序的运行,但警告往往是隐含的错误,对C语言熟悉的程序员应尽量减少警告的出现。
⑤在编辑程序过程中或运行之前应经常保存,这样可以避免由于运行出错非法退出、系统死机和断电等意外导致程序丢失。
对于某些复制过来的程序,虽然程序看起来像是正确的,但容易出现“非法字符”错误,它很可能是由于其中有全角字符,因为C程序使用半角字符,可以把全角字符改成半角。例如,半角的空格”"和全角的空格”",一个是小于128的ASCI码,另一个则是大于127的中文内码。判断是否是全角字符的办法是,找到错误的行后移动光标,如果一次跳两个字符长度,那么这个字符就是全角字符。