c语言的存储类&作用域&生命周期&链接属性

1.概念解析

  • 存储类:描述这个变量在何种地方存储
  • 作用域:描述这个变量起作用的代码范围
  • 生命周期:描述这个变量什么时候诞生及什么时候死亡
  • 链接属性:描述这个变量(函数)能如何被链接
  • 这四个概念从不同角度分析了c语言的不同规则

2.存储类

  • 代码段:又叫文本段(.text)用存放程序中的代码(函数)
  • 数据段:用来存储初始化为非0的全局变量、static修饰的局部变量
  • bss段:用来存储初始化为0以及未初始化值的全局变量、static修饰的局部变量
  • 堆内存:程序员手动申请,并存放数据到堆中
  • 文件映射区(内核程序、裸机程序一般没这个概念):用来存储打开的文件
  • 栈:用来存储普通的局部变量,以及函数调用传参

3.存储类关键字

  • auto:auto只有一个作用,就是修饰局部变量。其实平时的局部变量本来就是auto的,只是省略了auto而已。说到底auto加不加效果都一样
  • static:static有两种用法,而且两种用法没有任何关联
    • 第一种用法是修饰局部变量,使其成为“静态全局变量”,作用是分配到了数据段/bss段,生命周期变永久罢了。实际效果就是一个函数被反复调用时,里面的局部变量值是有记忆的
    • 第二种用法是修饰全局变量和函数,效果是修改链接属性为内链接,意思是只有当前c文件可以链接
  • regist
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值