编译和链接

一、环境

   1、翻译环境,在这环境中源代码被转换成机器可识别的代码;

   2、运行环境,代码实际被执行的地方。

二、预编译

   1、含义:将源代码文件test.c和相关的头文件,如stdio.h等被预编译器预编程成一个.i文件。

   2、规则:

   1)将所有的“#define”删除,并且展开所有的宏定义。

   2)删除所有的注释“//”和“/* */.

   3) 处理“#include”预编译指令,将被包含的文件插入到该编译器指令的位置。注意:这是递归过程,即被包含的文件还包含着其他文件。

   3、展示

   linux下,使用如下命令“gcc -E test.c -o test.i”可看到预编译后的文件,见下图:

三、编译

   含义:把预处理完的文件进行一系列词语分析、语法分析、语义分析及优化后产生相应的汇编代码文件的过程。

   1、词法分析:将代码扫描分割成一系列的记号。词法分析产生的记号一般分为如下几类:关键字、标识符、字面量(包含数字、字符串等)和特殊符号(如,加号、等号)。例如:C语言的源代码printf (“hello world!”),经过扫描以后,产生

猜你喜欢

转载自blog.csdn.net/m0_38121874/article/details/70615554