搜索
写经验 领红包
 > 时尚

栈帧大小在什么时候确定(栈帧和栈)

导语:栈帧的大小什么时候确定

栈帧的大小什么时候确定?

在c中,栈帧是存放局部变量的,比如全局变量和静态变量。那么栈帧的大小是什么时候确定的?下面就这个问题做一下分析:

1.首先我们先来看一下栈帧的作用:在程序中用到的函数调用的时候,需要把参数压入到函数的入口点处(也就是函数的第一个返回值),然后由这个函数去完成后续的功能。

2.当函数被调用的过程中,如果发现参数有变化时怎么办呢?这时就要进行一个数据交换的过程了。这个过程就是所谓的,就是把新得到的地址存入到寄存器里。

3.那么问题来了,后是不是就可以直接执行了呢?答案是不可以的!因为这个时候的寄存器里的内容并不是真正的数据!而是指针指向的内容!所以还需要对指针做进一步的加工处理才能真正地使用它。

4.那具体是怎么做的呢?其实就是在进入函数之前先判断当前指针是否已经指向了目标地址的值域内(即是否是真正的内存地址)。

5.如果是的话则说明当前的指针是正确的;如果不是的话则继续向下查找到底是哪一处的操作出现了问题导致无法正确地传递给下一个环节。(注意这里的下一环节指的是下一个步骤。)

6.直到找到正确的操作后才会进入到下一步的执行流程当中去;而如果找不到合适的操作的话就只能一直往下寻找直到找到为止了。(这里说的找是指根据前面几步所得到的信息来推测出该操作的执行路径以及对应的物理位置)

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小璎创作整理编辑!