gpt4 book ai didi

c - bss 中的 28 个额外字节

转载 作者:太空狗 更新时间:2023-10-29 17:23:44 25 4
gpt4 key购买 nike

struct abc
{
char cc[32];
} mystruct;

int main()
{
}

当我运行上面的程序时,.bss 部分有 64 个字节。我原以为它是 36 字节。 32 个字节用于 mystruct,4 个字节被其他库占用。

如果我将 char cc[32] 更改为 char cc[31] 那么我在 .bss 中得到 36 个字节。

-bash-3.00$ g++ bssSize.cc

-bash-3.00$ readelf --sections ./a.out | grep bss
[23] .bss NOBITS 08049580 000578 000040 00 WA 0 0 32
-bash-3.00$

64 是十六进制的 000040

为什么这些额外的 28 个字节存在于 .bss 中?

最佳答案

readelf 输出的最后一列是对齐,显示的值确实是“32”。因此,BSS 大小四舍五入为最接近的 32 字节倍数。

关于c - bss 中的 28 个额外字节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18152095/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com