第19课 编译过程简介

初识编译器

编译器做了什么

·预编译

  -处理所有的注释,以空格代替;

  -将所有的#define删除,并展开所有的宏定义;

  -处理条件编译指令#if,#ifdef,#elseif,#else,#endif;

  -处理#include,展开被包含的文件;

  -保留编译器需要使用的#pragma指令。

·编译

  -对预处理文件进行词法分析,语法分析和语义分析

    ·词法分析:分析关键字、标示符、立即数等是否合法;

    ·语法分析:分析表达式是否遵循语法规则;

    ·语义分析:在语法分析的基础上进一步分析表达式是否合法。

  -分析结束后进行代码优化生成相应的汇编代码文件

·汇编

  -汇编器将汇编代码转变为机器的可执行指令

  -每条汇编语句几乎都对应一条机器指令

·编程实验

  原代码单步编译示例:19-1.c

·小结

  编译的过程分为预处理、编译、汇编和链接四个阶段

    -预处理:处理注释、宏以及已经以#开头的符号

    -编译:进行词法分析、语法分析和语义分析

    -汇编:将汇编代码翻译成机器指令的目标文件

猜你喜欢

转载自www.cnblogs.com/kojull/p/12113297.html
今日推荐