C语言编译过程总结详解(转帖)

本文详细介绍了C语言的编译过程,包括预处理、编译、汇编和链接四个阶段。预处理涉及宏定义、条件编译、头文件包含等;编译阶段将源代码转化为汇编代码,可能涉及优化;汇编阶段将汇编代码转换为目标机器语言;链接阶段解决符号引用,生成可执行文件。理解这些过程有助于程序员定位错误和优化代码。
摘要由CSDN通过智能技术生成

本来打算把编译部分的内容总结一下,偶然看到一位网友的文章写得很全面,故此稍加整理,以作备忘。

        C语言的编译链接过程要把我们编写的一个c程序(源代码)转换成可以在硬件上运行的程序(可执行代码),需要进行编译和链接。编译就是把文本形式源代码翻 译为机器语言形式的目标文件的过程。链接是把目标文件、操作系统的启动代码和用到的库文件进行组织形成最终生成可执行代码的过程。过程图解如下:

 

        从图上可以看到,整个代码的编译过程分为编译和链接两个过程,编译对应图中的大括号括起的部分,其余则为链接过程。

编译过程

编译过程又可以分成两个阶段:编译和会汇编。

编译

        编译是读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,源文件的编译过程包含两个主要阶段:

        第一个阶段是预处理阶段,在正式的编译阶段之前进行。预处理阶段将根据已放置在文件中的预处理指令来修改源文件的内容。如#include指令就是一个预 处理指令,它把头文件的内容添加到.cpp文件中。这个在编译之前修改源文件的方式提供了很大的灵活性,以适应不同的计算机和操作系统环境的限制。一个环 境需要的代码跟另一个环境所需的代

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值