程序环境的详讲

简介: 在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函数;也有可能是意外终止


目录
相关文章
|
安全 物联网 物联网安全
物联网安全风险分析
### 物联网安全概览 #### 背景 物联网设备因其默认安全设置薄弱,成为黑客攻击目标。随着OT网络中物联网角色增多,这些设备临近关键系统,攻击者利用其发起攻击。 #### 物联网定义 物联网(IoT)是通过信息传感设备连接物品与互联网,实现智能化识别、定位、跟踪的网络。涵盖智能家居、可穿戴设备到复杂工业系统。 #### 攻击者偏好 物联网设备易受攻击,2022年针对物联网的网络攻击大幅增长,如DDoS攻击和恶意软件事件。物联网端点的安全疏忽使其成为恶意软件传播途径。 #### 制造业面临风险 制造业因物联网设备被攻击,导致勒索软件攻击增加,因生产中断造成的损失更大。
物联网安全风险分析
|
存储 Prometheus 运维
【云故事探索】NO.8:揭秘餐饮行业龙头 SaaS 厂商神州商龙的全栈可观测实践
天津市神州商龙科技股份有限公司成立于1998年,专为餐饮行业提供数字化解决方案。公司服务10万余家知名餐饮企业,确保用餐体验的稳定性至关重要。在业务容器化和微服务化过程中,神州商龙面临技术架构多样性、高可用要求及成本控制等挑战。通过尝试自建Prometheus和SkyWalking监控方案,最终选择阿里云Prometheus和日志服务SLS,实现了统一可观测平台,提升了监控效率、缩短故障排查时间、增强系统稳定性和优化资源利用率。未来,神州商龙计划引入机器学习和AI技术,提升自动化运维水平,并进一步整合业务系统监控数据。
【云故事探索】NO.8:揭秘餐饮行业龙头 SaaS 厂商神州商龙的全栈可观测实践
|
12月前
|
运维 安全 网络安全
Web安全-企业网络架构
Web安全-企业网络架构
184 1
|
12月前
|
自然语言处理 搜索推荐 数据挖掘
电商 API 接口:电商领域的强大技术引擎
在数字化浪潮中,电商API接口作为连接系统的桥梁,已成为电商市场的核心技术引擎。它通过实时库存信息、多样化支付等功能提升用户体验,支持自动化订单处理,促进数据流通与分析,并允许定制化开发,集成移动应用,从而增强系统灵活性和业务竞争力。
|
网络协议 网络性能优化 网络架构
运输层---概述
运输层---概述
224 2
汇编语言中的条件跳转和无条件跳转(je,jz,jmp)
汇编语言中的条件跳转和无条件跳转(je,jz,jmp)
621 1
|
网络协议 对象存储
阿里云oss配置自有域名
阿里云oss配置自有域名
365 1
|
SQL Oracle 关系型数据库
SQL ALTER TABLE 语句- 灵活修改表结构和数据类型
SQL ALTER TABLE 语句用于在现有表中添加、删除或修改列,也可用于添加和删除各种约束。
606 0
|
数据采集 数据可视化 数据挖掘
时间序列分析:用Python解锁金融市场数据的潜在价值
【4月更文挑战第12天】本文介绍了使用Python进行时间序列分析以挖掘金融市场数据价值的方法。金融市场数据具有时间性、不稳定性、非平稳性和相关性等特点。Python中的Pandas和Statsmodels库是进行时间序列分析的常用工具。基本流程包括数据导入、预处理、探索、模型选择(如ARIMA)、模型评估和优化。通过学习和实践,可以有效利用这些工具分析金融市场数据。
287 1
|
关系型数据库 Java 数据库连接
如何利用Mybatis-Plus自动生成代码(超详细注解)
如何利用Mybatis-Plus自动生成代码(超详细注解)
4794 1