程序环境的详讲

简介: 在ANSI C的任何一种实现中,存在两个不同的环境>:第1种是翻译环境,在这个环境中源代码被转换为可执行的机器指令.第2种是执行环境,它用于实际执行代码.

目录


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


1.翻译环境


(1)翻译环境中分为编译器和链接器


(2)编译中也分为3步


2.执行环境


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

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

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

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


1.翻译环境

(1)翻译环境中分为编译器和链接器

源代码在翻译环境中生成可执行程序:

编译+链接----->可执行程序 如图:

85f196a079bc1a6b90743bacfde02b2a_055bc8821cc241e1a2c872435294e4ed.png



(2)编译中也分为3步

1.预编译


2.编译


3.汇编


如图:

b708c3773e2a00087273f4a6fce67fe1_3999e2d491094a07b2717fc29c278f88.png

2.执行环境

程序执行的过程:

1. 程序必须载入内存中.在有操作系统的环境中:一般这个由操作系统完成.在独立的环境中, 程序

的载入必须由手工安排, 也可能是通过可执行代码置入只读内存来完成。

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

3. 开始执行程序代码. 这个时候程序将使用一个运行时堆栈(stack), 存储函数的局部变量和返回

地址。程序同时也可以使用静态(static)内存,存储于静态内存中的变量在程序的整个执行过程

一直保留他们的值.

4. 终止程序.正常终止main函数;也有可能是意外终止


目录
相关文章
|
7月前
|
安全 数据库 数据安全/隐私保护
基于易语言开发的定时关机程序
基于易语言开发的定时关机程序
66 0
|
23天前
|
数据安全/隐私保护
设备巡检管理系统选购指南,看这一篇就够了
在生产型企业中,设备巡检是确保设备正常运行和延长设备寿命的重要环节。面对人力、时间和资金的挑战,选择合适的巡检系统至关重要。系统需满足功能实用、操作简便、性价比高、数据安全及扩展性强等要素。二维码技术因其低成本、易用性,成为设备巡检的理想选择,尤其推荐使用草料二维码,它提供从搭建到管理的全流程服务,帮助企业管理设备巡检数据,提升效率。
|
7月前
|
监控 安全 数据管理
轻松掌握员工工作状态,试试这几款公司电脑监控软件
本文推荐了几款优秀的公司电脑监控软件,如WorkWin、Ekran System和InterGuard,以提升工作效率和保障信息安全。WorkWin侧重时间统计与行为监控,确保合规并优化工作流程;Ekran System强调带宽管理、敏感文件访问监控及系统设置监控;而InterGuard则提供安全审计和详细报告功能。这些工具通过实时监控、权限控制、远程管理和移动部署等手段,助力管理者有效管理员工,维护公司安全和生产力。
187 2
|
4月前
|
运维 监控 Linux
"熬夜达人揭秘:Linux系统崩溃前夜,如何用这几行代码救局?监控与排查全攻略!"
【8月更文挑战第19天】作为常需熬夜的系统管理员,面对Linux系统问题时,我总结了一套实用的监控与排查方法。通过使用`top`监控CPU使用率、`free`检查内存状况、`iostat`监测磁盘I/O、及`iftop`观察网络流量,结合`ps`、`pmap`和`strace`等工具深入分析,可有效识别并解决系统瓶颈,减少故障处理时间,保障系统稳定运行。
49 0
|
7月前
|
监控 API Swift
用Swift开发iOS平台上的上网行为管理监控软件
在当今数字化时代,随着智能手机的普及,人们对于网络的依赖日益增加。然而,对于一些特定场景,如家庭、学校或者企业,对于iOS设备上的网络行为进行管理和监控显得尤为重要。为了满足这一需求,我们可以利用Swift语言开发一款iOS平台上的上网行为管理监控软件。
276 2
|
7月前
|
JSON 定位技术 开发工具
基于Python开发的高德地图+58租房系统(源码+可执行程序+程序配置说明书+程序使用说明书)
基于Python开发的高德地图+58租房系统(源码+可执行程序+程序配置说明书+程序使用说明书)
134 0
|
小程序 前端开发 IDE
智能排班系统 【web前端/小程序结构介绍+开发环境介绍+项目启动】
智能排班系统 【web前端/小程序结构介绍+开发环境介绍+项目启动】
184 1
|
芯片
怎么查电脑配置信息(电脑硬件配置参数详细方法)
怎么查电脑配置信息(电脑硬件配置参数详细方法)
22359 1
|
存储 Linux C语言
嵌入式Linux C(八)——函数(详)
嵌入式Linux C(八)——函数(详)
198 0
嵌入式Linux C(八)——函数(详)
|
SQL Java 数据库连接
线上运行的项目突然变得很卡如何排查?
线上运行的项目突然变得很卡如何排查?
下一篇
DataWorks