C언어 - 공용체의 원리

2020. 11. 15. 14:20개인공부/C언어

구조체는 데이터를 묶어놓은것, 그데이터로 가지고 할수있는 일들을 기능까지 집어넣은 것이 객체지향에서 말하는 객체(Object), class이다.

 

int main(){

	/* 서로 다른 데이터 타입들이 같은 메모리 공간을 사용한다. (구조체와의 차이점)


  union my_union{

      int i;
      double d;
      char c;
  }; // 메모리를 같이 사용한다. (padding이 없다.)

	union my_union uni;
    
    printf("%zd\n", sizeof(union my_union));
    // 8
    printf("%lld\n", (long long)&uni);
    // 19920800
    printf("%lld %lld %lld\n", (long long)&uni.i, (long long)&uni.d, (long long)&uni.c);
    // 19920800 19920800 19920800 // 같은 메모리를 공유한다는 증거.
    
    union my_union save[10];
   

	printf("%zd\n", sizeof(save));
	 // 80 

 

출처 : 홍정모의 따라배우는 C언어