提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言——六个问题
前期在学习C语言<函数>这一部分的时候,可能会有以下六个疑问
如果你可以轻松回答出来这六个问题,可以退出这篇文章啦
如果不可以,建议你花时间认真读一下这篇文章,一定会对你有所帮助。
1、局部变量是怎么创建的?
2、为什么局部变量的值是随机值?
3、函数是怎么传参的?传参的顺序是怎么样的?
4、形参和实参是什么关系?
5、函数调用时怎么做的?
6、函数调用结束后是怎么返回的?
提示:本人是IT小白!萌新!菜鸡!已经努力打磨这篇文章啦!如果有错误的地方欢迎各位大佬指正!如果喜欢这篇文章还烦请点赞转发支持一下! 那么以下就是本篇文章正文内容,下面案例可供参考
一、预备知识
1、寄存器相关知识
主要了解esp和ebp即可
2、常用汇编指令
3、栈区相关知识
如上图最后两行粉色字介绍
另做一些额外补充,防止有些小伙伴还不理解什么是压栈和出栈操作
push——压栈,压栈就是从栈顶存放数据
pop——出栈,出栈就是从栈顶出数据
栈区的数据全部遵循 “先进后出,后进先出”、“FILO”也就是“First In Last Out”,大家看可以把压栈出栈这种方式理解为子弹匣、堆盘子、进出电梯…
另外,栈顶是高地址,栈底是低地址
如果汇编指令不太能看懂也没关系,主要结合旁边的文字注释去理解即可!
二、详解函数栈帧的创建和销毁
下面拆分为10步解析
三、总结
以下是我自己总结的对于函数栈帧的创建和销毁的过程简述
看到这里,相比你对开头的六个问题已经有了比较清晰的答案了吧~
如果觉得这篇文章对你有帮助,烦请您点赞支持一下~
如果各位小伙伴有什么想法也欢迎在评论区讨论噢~
感谢!!
写在最后:累死自己,卷死舍友!!!
本文含有隐藏内容,请 开通VIP 后查看