《程序是怎样跑起来的 》 日矢泽久雄 第八章
在第八章中,作者主要讲述了源文件与可执行文件及其转换过程。编写的程序被称为源代码,保存源代码的文件被称为源文件。计算机只能运行本地代码,而程序员键入的源代码无法直接识别运行。因此,需要编译器将源代码转换成本地代码。每种编程语言都需要其专用的编译器。编译器首先读入代码的内容,然后将源代码转换成本地代码。
C语言的源文件扩展名为".c",源文件相对简单易懂。但是源代码不能直接运行,因为CPU只认识本地代码的程序。因此,需要将源代码翻译成本地代码才能运行。不同语言编写出来的代码最终会被翻译为本地代码。编辑器负责转换源代码,不同的编辑器有不同的运行环境。所有类型的编辑器翻译出来的本地代码都会在其对应的CPU下运行。
仅仅依靠编辑器是无法得到可执行文件的,还需要连接器把多个目标文件(编译后的文件)生成一个EXE文件。EXE文件的内容又分为配置信息、变量组和函数组。当程序加载到内存后又分两个组,栈和堆。栈是用来存储函数内部临时的变量,以及函数调用时所用的参数的内存区域。堆是用来存储程序运行时的动态数据及对象的内存领域。