C语言---编译和链接

1、编译环境和运行环境

在ANSI C的任何一种实现中,存在两个不同的环境:

第一种:翻译环境,在这个环境下,源代码被转换为可执行的机器指令(二进制指令);

第二种:执行环境,它用于实际执行代码。

2、翻译环境

                翻译环境是由编译和链接两个大的过程组成的,而编译又可以分解为:预处理(预编              译)、编译、汇编三个过程。

  2.1、预处理(预编译)

在预处理阶段,源文件(.c)和头文件(.h)会被处理成为  .i  的文件。

命令:

  2.2、编译

          编译的过程就是将预处理后的文件进行一系列:词法分析、语法分析、语义分析及优化,生       成相应的汇编代码文件。

命令:

例子分析:

  (1)词法分析

            将源代码程序被输入扫描仪,扫描仪的任务是简单的进行词法分析把代码中的字符分割       成一系列的记号(关键词、标识符、字面量、特殊字符等)。

      16个字符:

       

  (2)语法分析

           语法分析器是对扫描产生的记号进行语法分析,从而产生语法树,这些语法树是以表达式         为节点的数。

  (3)语义分析

         语义分析器来完成语义分析,即对表达式的语法层面分析。编译器所能做的分析是语义的静     态分析。静态语义分析通常包括声明和类型的匹配,类型的转换等。

2.3、汇编

      汇编器是将汇编代码转变成机器可执行代码(二进制指令),每一个汇编语句几乎都对应一条机器指令。

        命令:

2.4、链接

      链接的过程主要包括:地址和空间分配,符号决议和重定位等这些步骤。

      链接解决的是一个项目中多文件、多模块之间相互调用的问题。

3、运行环境

多多指教啦!!

评论 79
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值