当前位置: 首页 > 后端技术 > Python

深入理解函数调用原理

时间:2023-03-25 19:50:51 Python

这是一篇关于函数调用原理的文章。它从一个比较基础的概念出发,用大量的图来解释调用函数时栈的完整变化过程。64位平台上函数调用的汇编级表示,从而深入理解函数调用的原理。最后,提供了几个示例来发现C语言函数堆栈帧的一些有趣行为。全文带你领略函数和栈的魅力,文章提供了gitbook的阅读方法。如果觉得对你有帮助,可以来文章的github仓库点个star!内容预备知识内存中的栈控制传输保存和恢复数据传输寄存器局部变量的存储函数栈帧C语言函数栈帧实例一个有趣的例子手动修改栈帧数据小结从本文中可以得到什么?如何在函数间传递控制权如何在函数间传递数据栈帧的初始化与销毁C/C++数组越界的危害为什么内联函数高效Release什么是栈溢出攻击其他文章有一个重要的概念内存对齐就是未提及,不属于函数调用范围。我在构造例子的时候避免了编译器生成一些额外的内存对齐指令,所以在文中看不到它的影子。如果你有兴趣,你可以通过互联网了解它。相关资源书籍:《深入理解计算机系统》(第三版)《汇编语言》(王爽第三版)公开课:《编程范式》(斯坦福公开课)绘图工具本文所有图片均使用excalidraw作为绘图工具,非常棒在线绘图工具,提供不同风格的绘图模式。