环境:最新 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 段? 谢谢解答
SYMBOL TABLE: 0000000100000000 g F __TEXT,__text __mh_execute_header 0000000100000f60 g F __TEXT,__text _main 0000000000000000 *UND* _printf 0000000000000000 *UND* dyld_stub_binder