递归函数

递归函数

1.进程使用的内存按照功能大致分为四个部分:

(1)代码区 (2)数据区
(3)堆区 (4)栈区

2.函数调用机制

(1)建立栈帧空间;(2)保护现场;
(3)为被调函数传递数据,同时形参获得存储空间,接着给局部变量分配空间;
(4)执行被调函数函数体;
(5)当被调函数执行完成,释放被调中局部变量占用的栈空间;
(6)恢复现场;(7)继续主调函数后续语句

3.作用域与生存区

(1)作用域:作用域指标识符能够被使用的范围只有在作用域内标识符才可以被访问
(2)局部域:局部域包括块域和函数原型域。任何标识符作用域的起始点均为标识符说明处。
在这里插入图片描述
*编译器的原则是局部优先原则

(3)生存期
存储类型说明符:auto和register(自动类型),static(静态类型),extern(外部类型)


静态生命期指的是标识符从程序开始运行时存在,既具有存储空间,到程序运行结束时消亡,即释放空间。
static总结:(1)统计函数被调用的次数
(2)减少局部数组建立和赋值的开销,变量的建立和赋值是需要一定的处理器开销的,特别是数组等含有较多元素的储存类型。在一些含有较多的变量并且被经常调用的函数中,可以将一些数组声明为static类型,以减少建立或者初始化这些变量的开销。
4.若在函数和全局变量用static关键字修饰,那么该函数和全局变量只在文本中可见,其他文件无法使用。
若全局变量用const关键字修饰,只在本文件中可见,其他文件无法访问,若其他文件要使用必须再用extern修饰。
extern和static不能联合使用*

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值