第八章主要讲述了从源文件到可执行文件的转换过程,即程序的编译和链接。以下是该章节的总结:
编译和链接的操作需要使用编译器何链接器来完成,所以本章重点讲述编译器和链接器的功能,介绍了程序从编写到运行的整个过程。
计算机只能执行本机代码:源代码是不能直接运行的,因为CPU能直接解释和执行的只有本机代码。CPU是计算机的大脑,它只能理解本机代码形式的程序。
看一看本机代码的内容:书中图8-1就是本机代码,可以看出本机代码的内容我们无法理解。所以我们需要先用容易理解的C语言等编程语言来编写源代码,然后将其翻译成本机代码。
编译器负责翻译源代码:编译器需要对读取的源代码进行词法分析、语法分析、语义分析等处理,这样才能够生成本机代码。
仅靠编译无法得到可执行文件:作为源代码的翻译结果编译器生成的是包含本机代码的文件,但这个文件不能直接运行,要得到可执行的exe文件,在编译之后还需要进行链接操作。
加载时生成的栈和堆:栈是用来存放函数内部临时使用的变量(局部变量)以及调用函数时传递的参数等数据的内存空间,堆是在程序运行时用来存放任意数据的内存空间。
总的来说,第八章详细阐述了从编写源代码到程序在计算机上实际运行的过程,包括编译、链接、加载和执行等步骤。这对于理解计算机程序的工作原理非常有帮助。