2011년7월19일_CM샘의 특강...저장클래스(Storage class) CODE, DATA, BSS, heap, stack



● 20110719_storage_class/main.c

   1:  #include <stdio.h>
   2:   
   3:  int a2 = 1;
   4:  int a3;
   5:   
   6:  void test(void);
   7:   
   8:  int main()
   9:  {
  10:      static int a;
  11:      int b;
  12:      static int a1;
  13:      static int a4 = 100;
  14:      static int a5;
  15:      static int a6;
  16:      static int a7 = 5;
  17:      static int a8;
  18:      static int a9;
  19:      static int a10;
  20:   
  21:      printf("%08X - &a\n", &a);
  22:      printf("%08X - &b\n", &b);
  23:      printf("%08X - main()의 주소\n", main);
  24:      printf("---------------------------\n");
  25:      printf("%08X (%d) - a\n", a, a);
  26:      printf("%08X (%d) - b\n", b, b);
  27:      printf("---------------------------\n");
  28:      printf("%08X - &a1\n", &a1);
  29:      printf("%08X - &a2\n", &a2);
  30:      printf("%08X - &a3\n", &a3);
  31:      printf("%08X - &a4\n", &a4);
  32:      printf("%08X - &a5\n", &a5);
  33:      printf("%08X - &a6\n", &a6);
  34:      printf("%08X - &a7\n", &a7);
  35:      printf("%08X - &a8\n", &a8);
  36:      printf("%08X - &a9\n", &a9);
  37:      printf("%08X - &a10\n", &a10);
  38:      printf("---------------------------\n");
  39:      printf("%08X (%d) - a1\n", a1, a1);
  40:      printf("%08X (%d) - a2\n", a2, a2);
  41:      printf("%08X (%d) - a3\n", a3, a3);
  42:      printf("%08X (%d) - a4\n", a4, a4);
  43:      printf("%08X (%d) - a5\n", a5, a5);
  44:      printf("%08X (%d) - a6\n", a6, a6);
  45:      printf("%08X (%d) - a7\n", a7, a7);
  46:      printf("%08X (%d) - a8\n", a8, a8);
  47:      printf("%08X (%d) - a9\n", a9, a9);
  48:      printf("%08X (%d) - a10\n", a10, a10);
  49:      
  50:      test();
  51:      
  52:      return 0;
  53:  }
  54:   
  55:  void test(void)
  56:  {
  57:      printf("%08X (%d) - a2\n", a2, a2);
  58:      
  59:      return ;
  60:  }


<실행결과>

image 

메모리영역...
노란색 박스친 변수들은 모두 DATA영역에 위치하고,
나머지 a1 ~ a10은 BSS영역에 위치한다.
변수 a도 마찬가지로 BSS영역에 위치하고,
변수 b는 stack영역에 위치한다.
heap영역도 같이 알아보자...나중에...언제?...나중에...ㅜㅠ



DSCN3667 DSCN3668