计算机不能直接识别和执行用高级语言写的指令 , 必须用编译程序把C源程序翻译成二进制形式的目标程序,然后再将该目标程序与系统的函数库以及其他目标程序连接起来,形成可执行的目标程序 。
在编好一个C源程序后,怎样上机进行编译和运行呢?一般要经过以下几个步骤:
(1)、上机输入和编辑源程序 。通过键盘向计算机输入程序,如发现有错误,要及时改正 。最后将此源程序以文件形式存放在自己指定的文件夹内,文件用.c作为后缀,生成源程序文件 , 如f.c
(2)、对源程序进行编译 , 先用C编译系统提供的“预处理器”对程序中的预处理指令进行编译预处理 。例如,对于#include<stdio.h>指令来说,就是将stdio.h头文件的内容读进来 , 取代#include<stdio.h>行 。由预处理得到的信息和程序其他部分一起,组成一个完整的 , 可以用来进行正式编译的源程序,然后由编译系统对该源程序进行编译 。
编译的作用首先是对源程序进行检查,判断它有无语法方面的错误,如有,则发出“出错信息” , 告诉编程人员认真检查改正 。修正程序后重新进行编译,如有错,再发出“出错信息” 。如此反复进行,直到没有语法错误为止 。这时,编译程序自动把源程序转换为二进制形式的目标程序,如果不特别指定,此目标程序一般也存放在用户当前目录下,此时源文件没有消失 。
在用编译系统对源程序进行编译时,自动包括了预编译和正式编译两个阶段,一气呵成 。用户不必分别发出二次指令 。
(3)、进行连接处理 。经过编译所得到的二进制目标文件(后缀为.obj)还不能供计算机直接执行 。前面也说明:一个程序可能包含若干个源程序文件,而编译是以源程序文件为对象的 , 一次编译只能得到与一个源程序文件相对于的目标文件,它只是整个程序的一部分 , 必须把所有的编译后得到的目标模块连接装配起来,再与函数库相连接成一个整体,生成一个可供计算机执行的目标程序,称为可执行程序 , 在Visual C++中其后缀为.exe,如f.exe 。
即使一个程序只包含一个源程序文件 , 编译后得到的目标程序也不能直接运行,也要经过连接阶段,因为要与函数库进行连接,才能生成可执行程序 。
以上连接的工作是由一个称为“连接编辑程序”的软件来实现的 。
【运行C程序的步骤和方法】(4)、运行可执行程序,得到运行结果 。

文章插图
以上过程如图所示,其中实线表示操作流程,虚线表示文件的输入输出 。例如编辑后得到一个源程序文件f.c,然后在进行编译时再将源程序文件f.c输入 , 经过编译得到目标程序文件f.obj,再将所有目标模板输入计算机,与系统提供的库函数等进行连接 , 得到可执行的目标程序f.exe,最后把f.exe输入计算机,并使之运行得到结果 。
一个程序从编写到运行成功,并不是一次成功的,往往要经过多次反复 。编写好的程序并不一定能保证正确无误,除了用人工方式检查外,还须借助编译系统来检查有无语法错误 。从图中可以看到:如果在编译过程中发现错误,应当重新检查源程序,找出问题,修改源程序,并重新编译,直到无错为止 。有时编译过程未发现错误,能生成可执行程序,但是运行的结果不正确 。一般情况下,这不是语法方面的错误,而可能是程序逻辑方面的错误,例如计算公式不正确、赋值不正确等 , 应当返回检查源程序,并改正错误 。
为了编译、连接和运行C程序,必须要有相应的编译系统 。目前使用的很多C编译系统都是集成环境(IDE)的,把程序的编辑、编译、连接和运行等操作全部集中在一个界面上进行,功能丰富 , 使用方便,直观易用 。
写出源程序后可以用任何一种编译系统对程序进行编译和连接工作,只要用户感到方便、有效即可 。20世纪90年代,Turbo C 2.0用得比较多,但Turbo C 2.0是用于DOS环境的,在进入Turbo C集成环境后,不能用鼠标进行操作,主要通过键盘选择菜单 , 不大方便 。有的人改用Turbo C++ 3.0,它具有方便、直观和易用的界面 , 虽然它也是DOS环境下的集成环境,但可以用鼠标操作菜单,因此在Windows环境下使用也很方便 。近年来,不少人用Visual C++对C程序进行编译 。Visual C++ 6.0既可以对C++程序进行编译,也可以对C程序进行编译 。
不应当只会使用一种编译系统,无论用哪一种编译系统,都应当能举一反三 , 在需要时会用其他编译系统进行工作
- 手机型号后面的Pro、Plus、Max、Note都是什么意思?
- 将这几个实用的办公技巧分享给你
- 怎么在安卓和PC上用苹果Notes?
- 康乃馨喜欢阳光吗
- ?螺蛳粉的热量高吗
- ?立定跳远很差是天生的吗
- ?烤月饼的温度和时间
- ?食品安全六要六不要
- ?山的南面水的北面叫什么
- ?青年旅馆和普通旅馆的区别