码迷,mamicode.com
首页 > 其他好文 > 详细

二、C程序编译过程

时间:2021-06-04 18:52:56      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:指令   end   c程序   生成   信息   语义   语言   程序   标识   

C程序编译过程:

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

 

一 预处理

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

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

二 编译

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

三 汇编

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

四 链接

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

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

二、C程序编译过程

标签:指令   end   c程序   生成   信息   语义   语言   程序   标识   

原文地址:https://www.cnblogs.com/tyghl/p/14847134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!