C语言的程序被加载到内存以后,可以有如下结构:
text段,用来存储二进制代码
initialized data段,通常简称data段,用来存储显式初始化的全局变量,如 int a=9;
uninitialized data段,通常称作bss(block started by symbol),用来存储未显式初始化的全局变量,如int a; 尽管操作系统内核会将a初始化为0;
heap段用来存储动态分配出去的内存,如malloc
stack段用来存储动态局部变量和一些局部调用有关的信息。
注意点:1、静态局部变量是存储在全局变量区的,也就是data段和bss段之一(根据其是否显示初始化)。