0 c
在我阅读了静态变量之后,有些事情让我感到困惑。我们可以说关键字 static 的作用是将变量的生命周期延长到程序的生命周期,因为变量的生命周期就是它存在的时间段。
我的问题是:
Ste*_*mit 5
根据计算方式,在传统的内存架构中,通常最多有五个不同的位置来存储 C 程序使用的数据:
声明为函数本地的变量(具有“自动”存储持续时间的变量)存储在堆栈上的 #1 中。
全局变量(在函数外部声明的变量)存储在 2、3 或 4 中,具体取决于它们是否已初始化、未初始化(意味着它们默认为 0)或const。这些变量具有“静态”持续时间。
const
而且由于静态局部变量具有静态持续时间,因此它们也存储在 2、3 或 4 中。
为了完整起见,我提到了#5“堆”,但是按照惯例声明的变量不会存储在那里。
另请参见C 中静态全局变量和非静态全局变量之间的区别。
归档时间:
2 年,12 月 前
查看次数:
157 次
最近记录:
2 年,11 月 前