静态存储持续性

← 内存管理


静态存储持续性:

1. 核心本质:static 关键字

  • 在函数内: 延长寿命(改变存储持续性)。
  • 在函数外: 限制权限(改变链接性)。

2. 内存特性:静态存储区 (Static Area),在BSS里

  • 生命周期: 与程序同生共死。程序启动时分配,程序退出时释放。
  • 初始化: 具备”零初始化”特性。如果没有手动赋初值,系统会自动将其设为 0(或 NULL)。
  • 持久性: 函数返回后,变量值 不会消失 。下次进入函数,它还保留着上次离开时的状态。哒哒哒哒哒!

3. mutable (谬-特-伯)

  • 核心: const 规则的”特权小门”。
  • 用法:const 结构体中,被 mutable 标记的成员变量 允许被修改

4. const 存储位置 (由位置决定)

  • 函数内部 (局部): 存储在 栈 (Stack) 中。随函数销毁而销毁(自动存储)。
  • 函数外部 (全局): 存储在 静态存储区 (通常是只读数据段,紧邻代码区)。与程序同生共死。

5. 静态存储区 (bss)

  • 特性: 存储全局变量和 static 变量。
  • 特权: 程序启动(上电)时, 强制自动清零