关于BSS段的一些问题,求各位帮忙解惑
测试代码如下:
#include <stdio.h>
int i;
int main(void)
{
return 0;
}
BSS段中存的是未初始化的全局变量,那么以上代码的BSS段大小应该是4,但是输入size test.o结果如下:
ting@TING-PC:~/test$ size test.o
text data bss dec hex filename
67 0 0 67 43 test.o
如果将代码改为:
#include <stdio.h>
int i = 0;
int main(void)
{
return 0;
}
BSS段大小就为4了:
ting@TING-PC:~/test$ gcc -c test.c
ting@TING-PC:~/test$ size test.o
text data bss dec hex filename
67 0 4 71 47 test.o
按理来说未初始化,或者被初始化为0的全局变量都应该保存在BSS段中阿,为什么会这样,求大家帮忙解答。