我知道在这个问题(为什么int类型在BSS段占用8个字节,在DATA段占用4个字节)中提到,对于GCC而言,.bss
的默认对齐方式为8字节。
所以对于这个程序:
int main(){
return 0;
}
我有类似这样的东西:
text data bss dec hex filename
1418 544 8 1970 7b2 test
当我添加一个带有初始化的静态变量以增加 .data
时(它确实做到了):
static int var = 255;
int main(){
return 0;
}
我看到.bss
的大小也减少了4个字节:
text data bss dec hex filename
1418 548 4 1970 7b2 test
请问为什么?
readelf
、nm
等工具的输出,以确定在bss中哪些地址有符号吗? - R.. GitHub STOP HELPING ICE.bss
和.data
之间对齐方式的问题,但仍然没有找到逻辑。 - Van Tr