内存模型--栈/stack
表白:黑白圣堂血天使,天剑鬼刀阿修罗。
讲解对象:/内存模型--栈/stack
作者:融水公子 rsgz
汇编教程汇编教程 http://www.rsgz.top/post/91.html分给应用的那块内存,还有另一部分就是栈/stack了,栈主要是给函数用的。它和帧是相反的,从高位到低位增长。
像这种简单的函数,包含了两个函数main()和add_a_and_b()
int main() { int a = 2; int b = 3; return add_a_and_b(a, b); }然后执行函数的时候呢,栈会为了这两个函数建立两个对应的帧。帧里面分别放着各自的变量。调用栈有多少层,就有多少帧,就有多少个函数。add_a_and_b运行结束,它的帧就会被回收,系统会回到函数main刚才中断执行的地方,继续往下执行。通过这种机制,就实现了函数的层层调用,并且每一层都能使用自己的本地变量。
特点:新的帧,叫做"入栈",英文是 push;栈的回收叫做"出栈",英文是 pop,从内部函数最先释放,我们就知道了这个规律了。所有的帧释放了,栈就释放了。
为了记忆:结束高位,栈帧函数
结束高位,战争函数随心画一幅,不要嫌我画的丑
===
公众号:小雪妃谢谢大家的支持!可以点击我的头像,进入我的空间浏览更多文章呢。建议大家360doc[www.360doc.com]注册一个账号登录,里面真的有很多优秀的文章,欢迎大家的到来。
---
赞 (0)