Static静态变量
static静态变量指存在程序运行整个过程中、分配内存地址不可变并只可用于作用域内的变量。
编译时生成目标文件,将未初始化的全局变量和静态变量存储在.bss段中,如下所示:
static int x1 = 0; static int x2 = 1;
实际上,x1也存放在.bss段上,因为初始化为0会被优化成未初始化,因为.bss段并不占用实际物理空间,所以这样节省了磁盘空间;
而x2存放在.data段中。
链接时分配虚拟地址空间并生成重定位表,此时.bss段仍未占用实际物理空间。
装载时重定位真正分配了实际物理空间。