Static静态变量

static静态变量指存在程序运行整个过程中、分配内存地址不可变并只可用于作用域内的变量。

 

编译时生成目标文件,将未初始化的全局变量和静态变量存储在.bss段中,如下所示:

static int x1 = 0;
static int x2 = 1;

实际上,x1也存放在.bss段上,因为初始化为0会被优化成未初始化,因为.bss段并不占用实际物理空间,所以这样节省了磁盘空间;

而x2存放在.data段中。

 

链接时分配虚拟地址空间并生成重定位表,此时.bss段仍未占用实际物理空间。

装载时重定位真正分配了实际物理空间。

posted @ 2020-12-07 20:56  没有窗户的小巷  阅读(177)  评论(0编辑  收藏  举报