bss段不占用空间理解

2016-08-30  本文已影响104人  eesly_yuan

bss段,只是给未初始化变量进行预留空间进行必要的记录,里面记录的内容并占用变量的实际大小

  1 #include <stdio.h>
  2 
  3 #ifdef UNINIT_VAR
  4 char a[1024];
  5 #endif
  6 
  7 int main(int argc, char ** argv)
  8 {
  9     printf("hello\n");
 10     return 0;
 11 }

分别带宏UNINIT_VAR和不带,编译得到test_with_uninit_var和test_without_var,二者大小如下

ls -al test_with*
-rwxr-xr-x 1 root root 7303 Aug 30 00:30 test_without_var
-rwxr-xr-x 1 root root 7321 Aug 30 00:30 test_with_uninit_var

size test_with*
   text    data     bss     dec     hex filename
   1102     280       4    1386     56a test_without_var
   1102     280    1056    2438     986 test_with_uninit_var

增加了18字节,并不是1024个字节

上一篇 下一篇

猜你喜欢

热点阅读