C语言程序环境

目录

程序的翻译环境和执行环境

        ​翻译环境

        ​运行环境


在我们写完代码时系统是怎么读懂并运行产生结果的呢?

这个过程包含了:编辑、编译、链接等等过程,每个过程都有专门的工具来处理它们(如编辑器、编译器等等)。拿VS2022来举例它是一个集成开发环境(IDE)包含了编辑、编译、链接、调试的功能,这就意味着它包含了编辑器、编译器(cl.exe)、链接器(link.exe)、调试器。

下面我们来详细了解一下:

 程序的翻译环境和执行环境

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

        >第1种是翻译环境,在这个环境中源码被转换为可执行的机器指令。

        >第2种是执行环境,它用于实际执行代码。

下面是两种环境相对应功能的模拟图(在翻译环境下要经过编译、汇编、链接的过程):

         翻译环境

        下面我们详细看一看翻译环境:在翻译过程中要经历编译和链接两个过程。

        如下图所示(我们在写代码可能创建多个源文件):

        举个例子:

在编辑代码时,这里创建了两个源文件:test.c和add.c ,下面我们来运行一下:

发现文件中多出来了两个目标文件:add.obj和test.obj。并且生成了执行程序: 程序的环境和预处理.exe。(可以知道该程序已经完成了编译和链接两个过程)

  注:在编辑代码时我们使用了外部头文件函数(printf),链接过程中链接库会提供stdio.h文件中的函数并由链接器链接最后成为可执行文件。

在翻译环境的编译过程在还具体的经历了三个阶段:预编译(预处理)编译汇编:

        >在预编译的阶段主要进行是一些文本操作,如:头文件的包含、注释的删除、#define符号的替换等等。

        >在编译的阶段主要进行的操作是将C语言代码转换成为汇编代码,如:语法分析、词法分析、语义分析、符号汇总。

        >在汇编的阶段主要进行的操作是将汇编指令转换为二进制指令并形成符号表。

在编译过程全部完成后,链接阶段主要进行进行的操作是合并段表以及符号表的合并和重定位。

         运行环境

程序执行的过程:

        1、程序必须载入内存中。在有操作系统的环境中:一般这个由操作系统完成。在独立的环境中,程序的载入必须由手工安排,也可能是通过可执行代码置入只读内存来完成。

        2、程序的执行便开始。接着便调用main函数。

        3、开始执行程序代码。这个时候程序将使用一个运行时的堆栈(stack)即函数栈帧,存储函数的局部变量和返回地址。程序同时也可以使用静态(static)内存,存储于静态内存中的变量在程序的整个执行过程一直保留他们的值。

        4、终止程序。正常终止main函数,也有可能是意外终止。


本博客略微介绍了一下程序环境,下一期将对程序的预处理进行详解。请各位看客不要走开,不见不散~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

1e-12

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值