- 数据段细分成如下几个区域:
- .bss 段:存放未初始化的静态数据,它们将被系统自动初始化为0
- .data段:存放已初始化的静态数据
- .rodata段:存放常量数据
- 代码段细分成如下几个区域:
- .text段:存放用户代码
- .init段:存放系统初始化代码
int a; // 未初始化的全局变量,放置在.bss 中
int b = 100; // 已初始化的全局变量,放置在.data 中
int main(void)
{
static int c; // 未初始化的静态局部变量,放置在.bss 中
static int d = 200; // 已初始化的静态局部变量,放置在.data 中
// 以上代码中的常量100、200防止在.rodata 中
}
- 注意:数据段和代码段内存的分配和释放,都是由系统规定的,我们无法干预。