我想在c语言中理解带有‘SIZE’命令的内存存储段.我分别做了以下几点:
File1.c
#include <stdio.h>
int main(void) {
return 0;
}
-
gcc -o size1 File1.c
个 -
size size1.exe
个
text data bss dec hex filename
7446 1404 244 12708 24b4 ./size1.exe
File2.c
#include <stdio.h>
int glb; /* Uninitialized variable stored in bss*/
int main(void) {
return 0;
}
-
gcc -o size2 File2.c
个 -
size size2.exe
个
text data bss dec hex filename
7446 1404 244 12708 24b4 ./size2.exe
在File2.c
的规模中,我预计bss
个细分市场会增加,但没有改变.为什么会发生这种事?
已添加全局变量,但BSS段未增加
Edit :个
*使用对象文件而不是.exe解决了我的问题,但现在.bss增加了16个而不是4个
Question evolved to why .bss increase of 16 instead of 4?个