一、源代码文件如下图
二、使用file命令查看文件类型
分析:编译后的目标文件类型为ELF-X86类型
三、使用objdump –d 进行反汇编
分析:
1、 目标文件类型为ELF-X86
2、 <mian>下面的callq包含重定位项,也就是2个函数的入口地址
四、objdump –hrt 查看目标文件布局图
分析:
1、.bss 没有初始化和初始化为0的全局变量(bss类型的全局变量只占内存空间,而不占文件空间)
2、.data 很明显就是数据段,里面存放着数据。(如果数据为0,为了优化考虑,编译器会把他当作bss处理)。data段存放初始化过的(非0)的全局变量。data类型的全局变量占用文件空间,运行时占用内存空间。
3、rodata 只读数据段,他是多个进程间共享的,这样可以提高空间利用率。
4、段-size:
.text 7b
.data 04
.bss 0
.rodata 1e