当前位置:网站首页>五、函数的调用过程
五、函数的调用过程
2022-08-03 12:15:00 【爱打羽毛球的程序员】
当一个函数的运行期间调用另一个函数时,在运行被调函数之前,系统需要完成三件事:
1.将所有的实参、返回地址(执行的函数语句的下一条语句的地址)传递给被调函数保存
2.为被调函数的局部变量(也包括形参)分配存储空间
3.将控制权转移到被调函数的入口
从被调函数返回主调函数之前,系统也要完成三件事:
1.保存被调函数的返回结果
2.释放被调函数所占的存储空间
3.依照被调函数保存的返回地址将控制权转移到调用函数
当有多个函数相互调用时,按照“后调用先返回”的原则,上述函数之间信息传递和控制转移必须借助”栈”来实现,即系统将整个程序运行时所需的数据空间安排在一个栈中,每当调用一个数时,就在顶分配一个存储区:进行压栈操作,每当一个函数退出时,就释放它的存储区,就行出栈操作,当前运行的函数永远都在栈顶位置。
A函数调用A函数和A函数调用在计算机看来是设有任何区别,只不过用我们日常的思维方式理解比较怪异而已!
边栏推荐
- 基于SSM和Web实现的农作物生长监控系统
- mysql advanced (twenty-four) method summary of defense against SQL injection
- 基于Sikuli GUI图像识别框架的PC客户端自动化测试实践
- R语言ggplot2可视化:使用ggpubr包的ggsummarystats函数可视化箱图(通过ggfunc参数设置)、在可视化图像的下方添加描述性统计结果表格
- I in mother's womb SOLO20 years
- 智能日报脚本
- JUC(三):锁核心类AQS ing
- Matlab学习13-图像处理之可视化GUI程序
- Go 语言快速入门指南: 介绍及安装
- 899. 有序队列
猜你喜欢

4500 words sum up, a software test engineer need to master the skill books

fastposter v2.9.0 programmer must-have poster generator

How can I get a city's year-round weather data for free?Precipitation, temperature, humidity, solar radiation, etc.

肝完Alibaba这份面试通关宝典,我成功拿下今年第15个Offer

nacos app

(through page) ali time to upload the jar

利用ChangeStream实现Amazon DocumentDB表级别容灾复制

第5章 实现首页Tab数据展示

FE主导打造一个运营活动平台

Matlab学习10-图像处理之傅里叶变换
随机推荐
从零开始Blazor Server(6)--基于策略的权限验证
基于Sikuli GUI图像识别框架的PC客户端自动化测试实践
bash for循环
ROS中编译通过但是遇到可执行文件找不到的问题
-找树根2-
LyScript 实现对内存堆栈扫描
622. 设计循环队列
ssh 免密登录了解下
Mysql重启后innodb和myisam插入的主键id变化总结
如何免费获得一个市全年的气象数据?降雨量气温湿度太阳辐射等等数据
使用.NET简单实现一个Redis的高性能克隆版(一)
长城简漫·暑期安全篇⑤ 这个强,不能逞
浅谈程序员的职业操守
"Digital Economy Panorama White Paper" Financial Digital User Chapter released!
[论文阅读] (23)恶意代码作者溯源(去匿名化)经典论文阅读:二进制和源代码对比
4500字归纳总结,一名软件测试工程师需要掌握的技能大全
为什么越来越多的开发者放弃使用Postman,而选择Eolink?
当前页面的脚本发生错误如何解决_电脑出现当前页面脚本错误怎么办
Knowledge Graph Question Answering System Based on League of Legends
B站回应“HR 称核心用户都是 Loser”:该面试官去年底已被劝退,会吸取教训加强管理