读书人

面试官问小弟我:bss段的大小记录在哪

发布时间: 2013-10-18 20:53:13 作者: rapoo

面试官问我:bss段的大小记录在哪里?
昨天面试,面试官问了我一下C语言的各种变量保存在哪
我跟他扯到bss段,我多事的说了一句bss段在可执行文件中不占用位置。程序运行前才开辟并清零。
比如int a[100],在可执行文件中没有记录100个0,而只是记录了a符号和a所用内存的大小。

没想到面试官居然问我那这个bss段的大小记录在哪里?

所以我现在的疑问是:1.bss段中的变量,是为每一个变量记录大小,还是只记录整个bss段的大小?
2.大小记录在哪?

这些我蒙了。完全没想过啊。

刚才用objdump分析了一下,还是无解。求解答
每个未初始化的变量的大小放在了符号表里了呀
static int g;
static short int h;
int main(){}
你看下面符号表中的4 ,2分别就是g,h的大小
面试官问小弟我:bss段的大小记录在哪里
[解决办法]
整个bss的大小记录在段表里呀
[解决办法]

引用:
Quote: 引用:

整个bss的大小记录在段表里呀

怎样用工具观察具体位置呢?当初我想这么回答,又不肯定,所以说不知道了。


readelf -S
[解决办法]
《Windows PE权威指南》
[解决办法]
推荐看《程序员的自我修养》

读书人网 >C语言

热点推荐