二、C程序编译过程

C程序编译过程:

  预处理、编译、汇编、连接;

 

一 预处理

预处理的过程主要处理包括以下过程:

  • 将所有的#define删除,并且展开所有的宏定义
  • 处理所有的条件预编译指令,比如#if #ifdef #elif #else #endif等
  • 处理#include 预编译指令,将被包含的文件插入到该预编译指令的位置。
  • 删除所有注释 “//”和”/* */”.
  • 添加行号和文件标识,以便编译时产生调试用的行号及编译错误警告行号。
  • 保留所有的#pragma编译器指令,因为编译器需要使用它们

二 编译

把预处理完的文件进行一系列的词法分析,语法分析,语义分析及优化后生成相应的汇编代码;

三 汇编

  将汇编代码转变成机器语言;

四 链接

  静态链接:将所依赖的静态库编译进可执行文件中;

  动态链接:链接时仅加入一些描述信息,程序运行时,再从磁盘中找到相应的动态库载入内存执行;

posted @ 2021-06-03 20:45  tyghl  阅读(82)  评论(0)    收藏  举报