程序编译-汇编-链接的理解02-可重定位目标文件具体包含的信息!

本文介绍了程序编译过程中BSS段与DATA段的作用及区别。BSS段用于存放未初始化的全局变量和静态变量,这些变量默认值为0,不占用实际磁盘空间;而DATA段则用于存放已初始化的变量,需要占用实际磁盘空间并存储具体的初始值。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这里写图片描述
.bss
未初始化的变量其实就相当于占位符。
仅在节头表里说明这一节需要多少的空间,在磁盘里并不分配任何空间。
C语言规定,未初始化的全局变量和局部静态变量的初始值为0
所以不需要为其分配任何空间。
.data
已经初始化的变量中存放具体的初始值,需要占磁盘空间。
这里写图片描述
BSS Block Started by Symbol 用于为符号预留空间
这里写图片描述
ELF头显示节头表的位置 通过其就可以找到节头表
节头表里表示每个节的名称以及每个节的偏移和大小
每一个节的节名以及起始位置都在这个表里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值