免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2894 | 回复: 6
打印 上一主题 下一主题

some questions about the BSS segment [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-09-17 20:37 |只看该作者 |倒序浏览
1. in main() block

  1. int main()
  2. {
  3.     static char a;
  4.    
  5.     printf("the size of char:%dbyte.", sizeof(char));
  6.     return 0;
  7. }
复制代码

question: gcc => a.out;size a.out

the BSS segment contains 8 bytes, why?

2.static int a[7];//normal
   static int b[8];//the BSS segment contains 7*4 bytes alone,why?

3.static double a[3];//the BSS segment is so boring, it looks there is no rule at all. why?


$gcc a.c
$size a.out >> testseg
$cat testseg

论坛徽章:
3
2015年迎新春徽章
日期:2015-03-04 09:56:11数据库技术版块每日发帖之星
日期:2016-08-03 06:20:00数据库技术版块每日发帖之星
日期:2016-08-04 06:20:00
2 [报告]
发表于 2007-09-17 23:24 |只看该作者
static char a;
这是属于bss段的。

论坛徽章:
0
3 [报告]
发表于 2007-09-18 08:56 |只看该作者
字节对齐的问题吧?

论坛徽章:
0
4 [报告]
发表于 2007-09-18 09:10 |只看该作者
库里边有个名为completed的static 变量,一个字节, 对齐后4字节, a对齐后4字节,共8字节

可以用readelf -a看各段情况, 还有符号表的情况, 里面有各符号的详细信息

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
5 [报告]
发表于 2007-09-18 09:22 |只看该作者
原帖由 cixzer 于 2007-9-17 20:37 发表
1. in main() block

int main()
{
    static char a;
   
    printf("the size of char:%dbyte.", sizeof(char));
    return 0;
}

question: gcc => a.out;size a.out

the BSS segment cont ...

BSS 保存的是在该段的变量的信息, 而不是变量本身(所占的空间).

论坛徽章:
0
6 [报告]
发表于 2007-09-18 20:19 |只看该作者
原帖由 Guang-Yuan.Wang 于 2007-9-18 09:10 发表
库里边有个名为completed的static 变量,一个字节, 对齐后4字节, a对齐后4字节,共8字节

可以用readelf -a看各段情况, 还有符号表的情况, 里面有各符号的详细信息

Thanks.

readelf    真不错。能否告知的知识应该看哪些参考书,您是自己独力摸索出来的还是借鉴了某些资料的?



Thank you all.

论坛徽章:
95
程序设计版块每日发帖之星
日期:2015-09-05 06:20:00程序设计版块每日发帖之星
日期:2015-09-17 06:20:00程序设计版块每日发帖之星
日期:2015-09-18 06:20:002015亚冠之阿尔艾因
日期:2015-09-18 10:35:08月度论坛发贴之星
日期:2015-09-30 22:25:002015亚冠之阿尔沙巴布
日期:2015-10-03 08:57:39程序设计版块每日发帖之星
日期:2015-10-05 06:20:00每日论坛发贴之星
日期:2015-10-05 06:20:002015年亚冠纪念徽章
日期:2015-10-06 10:06:482015亚冠之塔什干棉农
日期:2015-10-19 19:43:35程序设计版块每日发帖之星
日期:2015-10-21 06:20:00每日论坛发贴之星
日期:2015-09-14 06:20:00
7 [报告]
发表于 2007-09-19 18:51 |只看该作者
原帖由 cixzer 于 2007-9-18 20:19 发表

Thanks.

readelf    真不错。能否告知的知识应该看哪些参考书,您是自己独力摸索出来的还是借鉴了某些资料的?



Thank you all.

通过分析代码知道的.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP