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

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

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

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值