每次学习计算机知识我们应该思考一下穿着别人的鞋子,我们应该怎样走路。
无论通过哪种手段,你都能很轻松地查询到C语言在计算机中被执行的流程是:编辑,预处理,编译,链接,执行。
编辑:通过键盘敲写代码的过程是编辑
预处理:包含头文件的过程(只对include这条指令而言是这种功能)
编译:包括编译和汇编
链接:将汇编后形成的文件转化为可执行文件
下面我们来仔细讲解一下以上各个步骤的具体内容。
编辑
编辑这个过程应该是最好理解的,就是指通过键盘敲写代码的过程。
预处理
预处理是一个过程,是个抽象化的动词。
针对C语言我们就说一下预处理和头文件在一起使用时的情况。
OK,想必学习过C语言的同学一定看到过这句话 #include<stdio.h> 我们来分解一下这个语句 # 标识这是一条预处理指令。
include 是预处理指令中的具体的指令(可不要以为在C语言中只有#include啊还有#define等预处理指令)。include是指包含一个源文件的预处理功能。看吧,<stdio.h>就是一个头文件,把文件给包含到你要编写的C语言中。这就是一个预处理指令。当然了,预处理不只是仅有文件包含这种功能,还有宏定义,条件编译,线路控制,诊断等功能。这都是通过"#"+"预处理指令"来具体实现的。
编译
上面说了编译包括汇编和编译,先来看汇编的过程。
下面一个图示让你明白由源程序形成汇编语言的过程:
接下来就是编译的过程了。
编译就是讲汇编语言代码翻译为机器指令代码的过程。最后的结果是得到目标文件。目标文件存放的就是源程序的机器语言代码。
链接
目标文件最终要靠链接这一步形成可执行文件才能够执行。
链接是什么呢?例如,某个源文件中的函数可能引用了另一个源文件中的某个变量;那么链接就把这里几个相关程序连接到一起,是所有的目标文件成为一个能够被操作系统装入执行的整体。
OK,FINISH.