未初始化全局变量 为下一篇介绍进程内存分布做准备,这一篇先来介绍一下未初始化全局变量: 未初始化全局变量,这名字就很直白,就是 C 程序中定义成全局作用域而又没有初始化的变量,我们知道这种变量在程序运行后是被自动初始化为 全0 的。编译器编译的时候会将这类变量收集起来集中放置到 .bss 段中,这个段只记录了段长,没有实际上的内容(全是0,没必要存储),在程序被装载时操作系统会为它分配等于段长的内存,并全部初始化为0。 这有两个 C程序,都定义了全局数组 data(长度为1M,占用内存4MB),一个部分…