版权声明:本文为博主原创文章,若有错误之处望大家批评指正!转载需附上原文链接,谢谢! https://blog.csdn.net/summer_dew/article/details/83925470
- 编辑:源程序f.c
- 编译:先用C编译系统提供的“预处理器”(“预处理程序”或“预编辑器”)对程序中的预处理指令进行编译处理。由预处理得到的信息与程序其他部分一起,组成一个完整的、可以用来进行正式编译的源程序,然后由编译系统对源程序进行编译
例如,对于#include<stdio.h>将stdio.h头文件的内容读进来,取代#include<stdio.h> - 连接:经过编译所得到的二进制目标文件(.obj)还不能供计算机直接执行。一个程序可以有好几个.c文件,而编译时以单个.c文件为对象的,一次编译只能得到与一个.c文件相对应的目标文件(目标模块),它只是整个程序的一部分。必须把所有的编译后得到的目标模块连接装配起来,再与函数库相连成整体,生成一个可供计算机执行的目标程序,称为可执行程序(executive program)
- 运行可执行程序(.exe),得到运行结果
【解释】
- 编辑:写c文件,可能有多个
- 编译:将预处理指令进行处理,编译成一个.obj,一个.c文件编译成一个.obj
- 连接:可能有多个.c文件,对应就有多个.obj文件,将.obj文件进行连接,得到.exe
- 运行:运行.exe
【关于include】
- include进来的只是头文件.h,一般把具体的实现放到.c文件中
例如:stdio.h存放申明,stdio.c存放具体实现 - 所以包含#include<stdio.h>的test.c文件编译的过程:
- 先在test.c中将
#include<stdio.h>
用stdio.h进行代替 - 编译test.c得到test.obj
- test.obj与stdio.obj(由stdio.c编译得到)进行连接,组成test.exe
- 先在test.c中将