函数的执行过程-栈帧的创建与销毁
2017-05-28 21:20
218 查看
众所周知变,在我们编写代码时函数的一些优点使我们会频繁的使用函数,那么函数执行的过程到底是怎样实现的呢?
我们以一个简单的函数加法函数为例:
代码如下:
在执行函数时会创建一个栈,从高地址到低地址慢慢创立,在这个过程中栈顶和栈底都随着栈空间的创建,而慢慢像低地址移动,在函数完全实现时栈又会从低地址到高地址逐级销毁,以下是在vs环境下利用反汇编代码战展示的栈帧的创建和销毁全过程。
![](https://img-blog.csdn.net/20170528212824310?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmxvd2luZ193aW5k/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20170528212843825?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZmxvd2luZ193aW5k/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
函数是我们经常经常使用的工具,了解函数是怎样实现对于我们理解程序和编写代码时思路的整理有着很重要的作用。
我们以一个简单的函数加法函数为例:
代码如下:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int add(int x, int y) { int z = 0; z = x+y; return z; } int main() { int a = 1; int b = 2; int ret = add(a,b); printf("%d\n",ret); return 0; }这个代码虽然简单但也能体现出函数调用的完整过程。
在执行函数时会创建一个栈,从高地址到低地址慢慢创立,在这个过程中栈顶和栈底都随着栈空间的创建,而慢慢像低地址移动,在函数完全实现时栈又会从低地址到高地址逐级销毁,以下是在vs环境下利用反汇编代码战展示的栈帧的创建和销毁全过程。
函数是我们经常经常使用的工具,了解函数是怎样实现对于我们理解程序和编写代码时思路的整理有着很重要的作用。
相关文章推荐
- 创建和销毁过程几个函数的执行顺序
- 函数的调用过程,栈帧的创建和销毁
- 谈谈函数的调用过程,栈帧的创建和销毁。
- 函数的调用过程,栈帧的创建和销毁
- 函数调用过程,栈帧的创建和销毁
- 浅谈函数的调用过程,栈帧的创建和销毁,附图讲解
- 函数的调用过程(栈帧的创建和销毁)
- 函数的调用过程 栈帧的创建和销毁
- 函数的调用过程,栈帧的创建和销毁
- 创建和销毁过程几个函数的执行顺序
- 【C】函数的调用过程,栈帧的创建和销毁
- 函数的调用过程,栈帧的创建和销毁
- 创建和销毁过程几个函数的执行顺序
- 浅谈函数的调用过程,栈帧的创建以及销毁
- 函数调用过程,栈帧的创建和销毁
- 函数的调用过程、栈帧的创建以及销毁
- 函数调用的具体过程以及栈帧的创建和销毁
- 创建和销毁过程几个函数的执行顺序
- 谈谈函数的调用过程,栈帧的创建和销毁。
- 从简单的add加法函数分析函数栈帧的创建与销毁过程(附有关栈帧的题目)