一个后缀为“.c”文件(源文件),首先要被编译器编译生成目标文件(后缀为“.obj"),然后再通过链接转换为可执行文件(后缀为“.exe")才能运行。

编译:编译器对源文件进行编译,把源文件中以“文本形式”存在的源代码翻译成机器语言(二进制)的形式,并生成目标文件(源代码全部变成"二进制"的形式)。在编译期间,编译器会对源代码中的语法进行检查,如果没有错误,则生成“.obj”文件,否则会报错,程序无法通过编译。

目标文件:由编译所产生的文件,里面包含了所有的代码和数据,和一些其他信息(全都是以二进制形式存储)。

链接:当链接器进行链接的时候,先把各个目标文件在可执行文件里面的位置确定下来,然后经过一系列处理,直到把所有目标文件的内容都写在可执行文件中对应的位置上,再经过一些工作,就会生成一个可执行程序。