C语言函数栈帧专题vs2013

1.寄存器中有eax,ebx,ecx,edx,ebp,esp。其中上述最后两个是存放地址的,这两个地址是来维护函数栈帧的。栈先使用高地址,再使用底地址。ebp指向栈低指针(高地址) ,esp指向栈顶指针(低地址)。

2.main函数也是被其它函数调用的,函数最后的return 0,返回给mainret。

3.push 压栈,pop出栈。

4.调用一个函数,在栈上开辟了一段空间,那一小段空间里面存的初始值都是cccccccc,如果定义了一个变量,但是没有给它赋值,它默认存放的就是cccccccc,打印出来就是烫烫烫烫。

5.将call指令的下一条指令压栈,以便调用完函数返回的时候能找得到返回的地方。

6.形参并不是在被调用的函数内创建的,而是在调用它的函数内创建的。

7.函数的返回值会放在寄存器中,既然函数销毁的时候,这个返回值还在,但要注意的是函数只能有一个返回值。

8.在整个函数的调用过程中,形参是最后销毁的。

9.给每个函数开辟的空间是不一样的,编译器会自动完成,一般不会出现比如说局部变量过多而导致栈满的情况。

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

数九天有一个秘密

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值