C语言内存管理,BBS段内存分配

#include<stdio.h>
int a;
int b;
int c=1;
int d=1;

void main(){
    printf("%d\n",sizeof(int));
    printf("%p,%p,%p,%p\n",&a,&b,&c,&d);
}

运行结果:
4
00404090,004040A0,00402000,00402004

想要问的是:程序是不是给变量a,b分配了16个字节的空间,如果是,为什么分配16个字节,我知道的是,变量a,b是未初始化的全局变量,保存在BSS段

没有分配16个字节,bss段分配也不一定是连续的分配的啊

分配的是32个字节吧,不是16个

间隔要考虑对齐。然后编译器实现

是16个字节,不是位,至于为啥间隔那么多,就不清楚了。但不能说他就分配了16个字节那么多。