static的变量是放在哪里

static的变量都放在数据段,但是初始值若为0则放在BSS节中。而初始值非零则放在数据节中。

数据节和BSS节都属于数据段。
 
顺便说说对象的存储,可分为三类:静态存储(static storage);自动存储(automatic storage);动态分配存储(allocated or dynamic storage)。
对于自动存储则对应的是栈(stack),动态分配存储对应的是堆(heap);静态存储可分为.bss/.data/.rodata等数据段(section)。
在程序执行中把初始值为零或者是未设初始值的变量放在.bss段中。
 
推荐一个readelf命令:Linux命令学习手册-readelf命令           

posted on 2017-08-30 22:35  枝桠  阅读(6737)  评论(0编辑  收藏  举报

导航