传统艺能😎
小编是大一菜鸟不赘述,欢迎大佬指点江山(QQ:1319365055)
此前博客点我!点我!请搜索博主 【知晓天空之蓝】点我!点我!请搜索博主 【知晓天空之蓝】或扫码进入!
乔乔的gitee代码库(打灰人 )欢迎访问,点我!
(https://blog.51cto.com)感谢支持!
过渡区🤣
现在是北京时间10:38,平平淡淡的一天,刚上完高数回来,数学课混了条狗子进来,在旁边过道蹲着再现忠犬八公,事实证明,狗都在学高数,我还不能寄。
正片开始👀
今天来讲讲我对栈帧创建与销毁的拙见。
理解什么是栈帧首先知道什么是栈:
在数据结构中, 栈是限定仅在表尾进行插入或删除操作的线性表。栈是一种数据结构,它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据。
栈有什么用?
在计算机系统中,栈也可以称之为栈内存是一个具有动态内存区域,存储函数内部(包括main函数)的局部变量和方法调用和函数参数值,是由系统自动分配的,一般速度较快;存储地址是连续且存在有限栈容量,会出现溢出现象程序可以将数据压入栈中,也可以将数据从栈顶弹出。压栈操作使得栈增大,而弹出操作使栈减小。
栈用于维护函数调用的上下文,离开了栈函数调用就没法实现。
讲到这里,小朋友你是否有很多问号?那打住,我们抛开无聊的学术前文,另起炉灶。
寄存器👏
要讲清楚栈帧就必须理解一手寄存器。尤其是 ebp,esp这2个寄存器中存放的地址,这两个地址是用来维护函数栈帧的。
寄存器有很多种这里不赘述
<