C语言四个处理步骤

本文详细介绍了C语言的四个处理步骤:预处理(宏定义、文件包含、条件编译)、编译(语法检查和汇编生成)、汇编(转换为机器码)以及链接(生成可执行程序)。预处理中的宏定义和条件编译对于程序的灵活性至关重要,编译阶段则涉及语法检查和程序员必须理解的基本概念。虽然汇编通常不需程序员直接处理,但了解其工作原理有助于调试。链接阶段将所有部分整合为最终的可执行文件,涉及静态库和动态库的概念,链接错误通常与库文件有关。

C语言四个处理步骤

  1. 预处理, 展开头文件/宏替换/去掉注释/条件编译 (test.i main .i)
  2. 编译, 检查语法,生成汇编 ( test.s main .s)
  3. 汇编, 汇编代码转换机器码 (test.o main.o)
  4. 链接 链接到一起生成可执行程序 a.out

预处理
1.宏定义; 2.文件包含; 3.条件编译。

预处理命令以符号“#”开头。

宏定义命令:#define、#undef,用来定义和解除宏。(值得注意的是还可以定义带参数的宏)

文件包含命令:#include “文件名” 或者 #include <文件名>。使用前者时会优先从当前目录查找头文件,使用后者时优先从默认的系统目录查找。

条件编译:#ifdef、#else、#endif、#elif 等。出于程序兼容性的考虑,有些语句希望在条件满足时才编译。这时候会用到条件编译的命令。

编译

编译阶段是检查语法,生成汇编,这个属于程序员的必备知识,我们学习一门语言第一步就是知晓语法,其中比较生涩的有左值右值,指针的使用,内存的管理,数据结构的使用,这将会是一场持久战 ,贯穿在整个学习生涯。

汇编
汇编代码转换机器码 这个阶段,非底层的程序员不需要考虑, 编译器不会搞错的。也与c/c++开发者无关,但是我们可以利用反汇编来调试代码,学习汇编语言依然是必备的。

链接

开头我引用一下百度百科的介绍

静态链接是由链接器在链接时将库的内容加入到可执行程序中的做法。链接器是一个独立程序,将一个或多个库或目标文件(先前由编译器或汇编器生成)链接到一块生成可执行程序。静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。

动态链接所调用的函数代码并没有被拷贝到应用程
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值