《程序是怎样跑起来的》第八章

本章围绕着编译器的功能,详细介绍了程序的编写到运行的流程。
用某种编程语言编写的程序就称为源代码。保存源代码的文件就称为源文件。在源代码运行时需要将文件翻译成本地代码才能被CPU识别并运行。程序翻译为exe文件后可被CPU运行。
将高级编程语言编写的源代码转换成本地代码的程序被称为编译器。不同的语言有不同的编译器。因不同的CPU对应的本地代码不同,所以编译器不仅和编程语言有关,还和CPU的种类有关。
在程序别编译后生成的obj文件还不能被直接运行,因程序中的所使用的外部函数因程序并未记述处理内容,需要将这些函数与编译后的文件箱结合才能够正常使用。把多个目标文件结合,生成为exe文件的处理叫做链接,用来链接的程序别称为链接器。
Windows的API目标文件存储在DLL文件中。存储着目标文件实体的可以直接与EXE文件结合的库文件被称为静态链接库。而仅存储文件位置和文件信息的库则被称为导入库。可执行文件需要在内存中执行。EXE文件会给变量和函数分配虚拟的内存地址,而在内存中运行时会转换为实际内存地址。
栈别用来储存函数内部的临时变量,以及函数调用时所用的参数的内存区域。堆是用来储存程序运行时的任意数据及对象的内存领域。

posted @ 2024-02-23 16:38  咲张  阅读(6)  评论(0)    收藏  举报