C++——C++函数调用机制(3)

C++函数调用机制


C++函数调用机制:主要通过堆栈调用来实现 栈是一种后进先出的数据结构 就像子弹夹一样 先放进去的子弹在最底层  后放进去的在上层 在扣动扳机的时候 后面放进去的子弹先飞出去


c++的函数调用过程主要是要做好调用初始化和善后的处理过程 :


步骤:

1.分配被调用函数所需的栈空间----代码的执行需要相应空间

2.保护调用函数的运行状态和返回地址---被调函数执行完以后需要回到原点 继续运行

3.传递参数----注意是传值参数,还是传地址(指针和引用)

4.将控制权转交被调函数

5.被调函数执行完毕,释放栈空间,返回初始点


注意:函数的层层调用将会不断消耗栈空间 过多的局部变量 特别是数组的定义 很有可能造成栈空间溢出  所以在编写递归函数的时候一定要谨慎


几种特殊函数:


1.递归函数:某函数间接或者直接调用自身 间接递归:指的是两个函数相互调用 递归函数简单易读 但是对资源消耗很大 不提倡

2.内联函数:主要是为了解决程序运行效率 通常是将某个短小且经常被调用的函数加上inline关键字 那么每次碰到该函数的调用 都用一段相同代码替换 省去堆栈调用

3.重载函数:参数列表不同的同名函数

3.const函数:返回一个const数据

4.const成员函数:只读函数


c++函数压栈顺序:从右往左

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值