首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么bss在这种情况下有价值?

为什么bss在这种情况下有价值?
EN

Stack Overflow用户
提问于 2017-06-21 06:01:19
回答 1查看 56关注 0票数 2

我在一些网站上看到了这一点,并对结果感到惊讶:

代码语言:javascript
复制
#include <stdio.h>

int main(void)
{
    return 0;
}

当使用size检查上述代码在每一节中的内存时

代码语言:javascript
复制
$ gcc memory-layout.c -o memory-layout
$ size memory-layout
text       data        bss        dec        hex    filename
960        248          8       1216        4c0    memory-layout

这里,没有任何全局或静态变量,bss的大小显示为8。我没有得到这8个字节是怎么用的?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-21 06:10:05

您正在查看完整可执行程序的段大小:源代码的对象模块链接到标准库启动代码和必要的库支持函数(如exit )。您看到的databss的数字可能是由这些模块定义的全局对象造成的。特别要注意的是,您的main函数很难证明960字节的代码是正确的。

只生成一个对象文件并在该文件上运行size

代码语言:javascript
复制
$ gcc -c memory-layout.c
$ size memory-layout.o
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44667934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档