交流
商城
MCN
登入
注册
首页
提问
分享
讨论
建议
公告
动态
发表新帖
发表新帖
8 ELF节-.data与.bss
分享
未结
0
2672
李延
LV6
2022-07-17
悬赏:20积分
# 1 data data用于存放已经初始化的全局静态变量与局部静态变量。在systab中我们对于变量可以看到定义了位置和大小,而这个位置,就是指在.data中的位置 # 2 示例 ```c struct book{ char *name; int size; }; struct book a = {"c语言设计",100}; struct book b = {"c语言设计2",300}; int q = 3; extern int cc; int main(){ return a.size +b.size+q+cc; } ``` 对于变量a的systab描述 - st_value 值为0x10 - st_size 0x10 表示占用16个字节 也就是在.data的偏量0x10处,占16字节我们看一下:  这里有两值 - size。 0x12c 为 300 - name 0x0 这里是指针,在.rela.data中进行重定义 # 3 bss bss保存了未初始化的数据 ```c struct book{ char *name; int size; }; struct book a = {"c语言设计",100}; struct book b = {}; int q =0; int main(){ return a.size +b.size+q; } ``` 当我们将数据没有初始化时:  bss 大小为14 刚好是b和q变量大小
回帖
消灭零回复
提交回复
热议榜
java 相关知识分享
8
好的程序员与不好的程序员
6
写给工程师的十条精进原则
5
spring boot以jar包运行配置的logback日志文件没生成
5
一步一步分析SpringBoot启动源码(一)
5
MockMvc测试
5
【吐槽向】是不是有个吐槽的板块比较好玩
4
logstash jdbc同步mysql多表数据到elasticsearch
3
IntelliJ IDEA 优质License Server
3
.gitignore忽略规则
3
SpringBoot启动源码分析
3
一步一步分析SpringBoot启动源码(三)
3
2
一步一步分析SpringBoot启动源码(二)
2
积分不够将无法发表新帖
2
官方产品
Meta-Boot - 基于MCN
MCN - 快速构建SpringBoot应用
微信扫码关注公众号