我们写代码保存成文件——编译(就是把我们的代码翻译成计算机能理解的语言)——执行
1.源文件(Source File)
就是我们写完后保存的文件。

C语言源文件的后缀是.c;
C++语言(C Plus Plus)源文件的后缀是.cpp;
Java 源文件的后缀是.java;
Python 源文件的后缀是.py;
JavaScript 源文件后置是.js。


(下面这一段摘自C语言中文网)
源文件其实就是纯文本文件,它的内部并没有特殊格式,能证明这一结论的典型例子是:在 Windows 下用记事本程序新建一个文本文档,并命名为demo.txt,输入一段C语言代码并保存,然后将该文件强制重命名为demo.c(后缀从.txt变成了.c),发现编译器依然能够正确识别其中的C语言代码,并顺利生成可执行文件。


2.项目(Project)

“程序”以细分为很多种类,例如:

有的程序不带界面,完全是“黑屏”的,只能输入一些字符或者命令,称为控制台程序(Console Application),例如 Windows 下的 cmd.exe,Linux 或 Mac OS 下的终端(Terminal)。

有的程序带界面,能够使用鼠标点击,称为GUI程序(Graphical User Interface Program),例如 QQ、迅雷、Chrome 等。

有的程序不单独出现,而是作为其它程序的一个组成部分,普通用户很难接触到它们,例如静态库、动态库

控制台程序对应的项目类型为“Win32控制台程序(Win32 Console Application)”,GUI程序对应的工程类型为“Win32程序(Win32 Application)”。

我们刚开始学的C语言一般都是控制台程序

  1. 链接(Link)
    源代码经过编译(Compile)和链接后就变成了可执行文件
    编译器一次只能编译一个源文件,如果当前程序包含了多个源文件,那么就需要编译多次。编译器每次编译的结果是产生一个中间文件(可以认为是一种临时文件),而不是最终的可执行文件。中间文件已经非常接近可执行文件了,它们都是二进制格式,内部结构也非常相似。
    将当前程序的所有中间文件以及系统库(暂时可以理解为系统中的一些组件)组合在一起,才能形成最终的可执行文件,这个组合的过程就叫做链接(Link)。完成链接功能的软件叫做链接器(Linker)
    如果程序只包含了一个源文件,是不是就不需要链接了呢?不是的!
    经过编译后程序虽然只有一个中间文件,不再需要和其它的中间文件组合了,但是这个唯一的中间文件还需要和系统库组合,这个过程也是链接。也就是说,不管有多少个源文件,都必须经过编译和链接两个过程才能生成可执行文件