.bss 段存放哪些数据
.bss
段,即未初始化数据段(Block Started by Symbol),主要存放未初始化的全局变量和静态变量
.bss
段的特殊之处在于,它在可执行文件中不占用任何实际的磁盘空间。它只在可执行文件中有一个占位符,告诉操作系统在加载程序时需要为这块区域分配多大的内存。当程序被加载到内存后,操作系统会为 .bss
段分配一片连续的内存空间,并且会自动将其所有字节初始化为零
这种设计是为了节省可执行文件的大小。如果一个程序有很多未初始化的全局变量,将它们全部写进文件会非常浪费空间,因为它们的值都是已知的(默认是0)
- 例子:
int uninitialized_global;
static char static_array[1024];