其中在存储器中存储静态变量

where in memory static variables are stored?

本文关键字:静态 变量 存储 存储器      更新时间:2023-10-16

可能重复:
静态变量存储在哪里(在C/C++中(?

我想知道全局变量和静态变量在C/C++中存储在哪里。就局部变量存储在堆栈中而言,当函数处于活动状态时,我们也会从堆中请求内存,但我对静态和全局变量一无所知。请任何人把灯照上去好吗?

它们存在于全局内存中,全局内存与其他两个区域是分开的。如果在编译时知道它们的精确内容,那么它们将作为程序或库的一部分发出,并存在于数据段中。

注意:我一直认为它与文本段中的代码一起存在,但简单的查找清楚地表明,数据段与文本段是分开的,尽管它们通常是连续的。

加载可执行文件时,操作系统会为程序的全局数据分配内存。通常,它们保存在可执行文件的.data.bss部分中。

它们存储在通常(总是?(固定大小的数据段中,并"烧录"到可执行文件中,这与运行时从操作系统分配的堆不同。数据段通常分为初始化数据段和未初始化数据段(分别为.data和.bss(。

维基百科在这里有更多信息