1. 运行机制原理图

image.png

2. 一个可执行的C程序文件,是经过编译->链接后形成的

可执行程序的内部是一系列计算机指令和数据的集合,它们都是二进制形式的,CPU 可以直接识别
例如,在屏幕上输出“VIP会员”,C语言的写法为:

  1. puts("VIP会员");

二进制的写法为:
1、运行机制 - 图2

  • 编译

直接使用二进制指令编程对程序员来说简直是噩梦,这就倒逼程序员开发出了编程语言,提高自己的生产力,例如汇编、C语言、C++、Java、Python、Go语言等,但是CPU只认识二进制码,所以我们就需要一个工具把C语言代码转换成计算机能识别的二进制指令。这个工具叫做编译器(Compiler)。 编译器能够识别代码中的词汇、句子以及各种特定的格式,并将他们转换成计算机能够识别的二进制形式,这个过程称为编译(Compile)。它是一个复杂的过程,大致包括词法分析、语法分析、语义分析、性能优化、生成可执行文件五个步骤。 编译后的文件称为目标文件

  • 链接

编译后的文件虽然也是二进制文件,但是只是把我们自己写的代码变成了二进制而已,还需要将我们引用的标准库、动态链接表等结合起来。那么这一步就需要链接链接(Link)其实就是一个打包过程,把二进制的目标文件和系统组件组合成一个可执行文件。这个工具叫做链接器(Linker)


一般情况下我们所说的“编译器”实际上也包括了链接器。
不同平台下有不同的编译器,所以C语言的程序必须在不同的平台下重新编译才能运行,无法跨平台。
真正的跨平台语言是一处编译,处处运行。