环境:最新 mac os 以及自带的 gcc 环境
如下代码中有一个全局变量 int a[30]
'''
#include <stdio.h>
int a[30];
int main() {
printf("hello world");
}
'''
如果吧 int a[30]; 注释掉,编译后可执行文件的大小是 8432byte ;
如果不注释,可执行文件大小是 8456byte ;
如果改成 int a[30]={1,2,3...30};,可执行文件大小依然是 8456byte ;
已知 int 的在 mac 下大小是 4byte,int[30]的大小应该是 120byte,为何后两种情况可执行文件只增加了 24byte ? a 是记录在 data 段还是 bss 段?
谢谢解答
如下代码中有一个全局变量 int a[30]
'''
#include <stdio.h>
int a[30];
int main() {
printf("hello world");
}
'''
如果吧 int a[30]; 注释掉,编译后可执行文件的大小是 8432byte ;
如果不注释,可执行文件大小是 8456byte ;
如果改成 int a[30]={1,2,3...30};,可执行文件大小依然是 8456byte ;
已知 int 的在 mac 下大小是 4byte,int[30]的大小应该是 120byte,为何后两种情况可执行文件只增加了 24byte ? a 是记录在 data 段还是 bss 段?
谢谢解答