본문 바로가기
2학년 2학기/c언어

11-7장 공용체

by kkkkk1023 2024. 11. 12.

공용체란?

: 같은 메모리 영역을 여러 개의 변수가 공유해서 사용하는 것이다. 즉, int i가 특정 메모리 영역을 사용하면 char c는 해당 영역을 사용할 수 없다.

 

union example {
	char c;	// 같은 기억 공간 공유
	int i;		// 같은 기억 공간 공유
};

 

 

 

 

#include <stdio.h>

union example {
    int i;
    char c;
};

int main(void)
{
    union example data;

    data.c = 'A';
    printf("data.c:%c   data.i:%i\n", data.c, data.i);

    data.i = 10000;
    printf("data.c:%c   data.i:%i\n", data.c, data.i);
    
    
    //data.c:A   data.i:-858993599
    //data.c:   data.i : 10000
}

 

이렇게 하나의 변수가 메모리를 사용했을 때 다른 변수를 출력하면 쓰레기 값과 같은 필요없는 값이 나온다.

또한 공용체에 할당되는 메모리의 크기는 가장 큰 멤버의 자료형으로 결정된다. 위의 코드에서는 int가 4byte로 가장 크기때문에 공용체에 할당되는 메모리의 크기는 4byte이다.

'2학년 2학기 > c언어' 카테고리의 다른 글

11-9장 typedef  (1) 2024.11.12
11-8장 열거형  (0) 2024.11.12
11-6장 구조체와 포인터  (0) 2024.11.11
11-5장 const struct  (0) 2024.11.11
11-4장 구조체와 함수  (0) 2024.11.11