2018-04-12程序员的自我修养(读书笔记2)

一. 过程:

1.预处理:

预编译主要处理源码中以#开始的预编译指令,eg:#include ,#define

(1)删除所有的#define  并且展开所有的宏,删除所有的 // 或者  /*  */  

(2)处理所有的条件语句 eg:#if   、  #ifDef  #elif   #else    #endIf

(3)处理所有的#include 语句 ,将被包含的文件插入到该预编译指令的位置 ,这是一个递归的过程,被包含的文件可能还包含了别的文件

(4)添加行号和文件名标识, 保留所有的 #program编译器指令

2.编译 

编译就是把预处理完的文件,进行一系列的词法分析,语法分析,语义分析及优化分析后产生的汇编代码文件,

3.汇编

汇编器as就是将汇编代码转变成机器可以执行的语言,每一条汇编语句几乎都对应一条机器指令。所以 汇编就是  根据汇编指令  和机器指令的 对照表 ,一一对照翻译。 文件通过预编译 ,编译  ,汇编 就可以直接输出目标文件了

4.链接

我们需要把一大堆的文件链接起来才可以得到a.out 文件(最终的可执行文件);




#问题

1. 这个地方怎么变成这样的 ,愣是没看懂

2018-04-12程序员的自我修养(读书笔记2)_第1张图片

二、 运行时库:支持程序运行的基本函数的集合

库: 是一组目标文件的包,就是一些常用的代码编译成 目标文件  打包存放  ,

你可能感兴趣的:(2018-04-12程序员的自我修养(读书笔记2))