1.56、未初始化的全局变量和初始化的全局变量放在哪里?
初始化的全局变量
const
修饰的全局常量)。数据段在程序加载时由操作系统从可执行文件加载到内存,且占用可执行文件的物理空间。
未初始化的全局变量
未初始化的全局变量(以及静态变量,或者显式初始化为0的全局/静态变量)存放在**BSS段(Block Started by Symbol)**中。BSS段只在逻辑上占用空间,程序启动时由操作系统自动清零,且不占用可执行文件的物理空间。BSS段同样属于静态内存分配,保证这些变量在程序运行前被初始化为0。
总结来说,二者均属于静态存储,区别在于是否有显式初始化:
变量类型 | 存储位置 | 特点 |
初始化的全局变量 | 数据段(data) | 占用可执行文件空间,程序加载时初始化 |
未初始化的全局变量 | BSS段 | 不占用可执行文件空间,程序启动时自动清零 |
这种内存划分不仅优化了可执行文件大小,也方便操作系统对程序的加载和初始化管理。
本文首发于【讳疾忌医-note】公众号,未经授权,不得转载。
(加入我的知识星球,免费获取账号,解锁所有文章。)
阅读剩余
版权声明:
作者:讳疾忌医-note
链接:https://www.1217zy.vip/archives/1382
文章版权归作者所有,未经允许请勿转载。
THE END