안녕하세요. 오늘은 C언어 공용체 (union)에 대해 알아볼 것 입니다.
공용체란 멤버변수끼리 메모리를 공유하는 것 입니다. 메모리를 공유하면 메모리를 아낄 수 있는 장점이 있는 반면, 다른 멤버변수에 값을 넣으면 기존의 값은 지워지게 됩니다.
위와같이 union을 선언했다고하면 위의 그림처럼 메모리에 할당이 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include <stdio.h> union data { int age; int score; char class; }; int main(void) { union data miyeong; miyeong.age = 20; miyeong.score = 100; printf("age : %d \n", miyeong.age); printf("score : %d \n", miyeong.score); printf("miyeong의 크기 : %d \n", sizeof(miyeong)); return 0; } | cs |
13,14번줄에서 age는 20, score는 100을 넣었는데도 age가 100으로 나오는 것을 볼 수 있습니다. 나중에 넣은 score로 메모리에 채워진 것입니다.
17번줄에 miyeong의 크기를 측정했는데 4가 나오는것을 볼 수 있습니다.
'프로그래밍 언어 > C언어' 카테고리의 다른 글
C언어 포인터와 배열에대해 알아보기입니다. (0) | 2017.11.01 |
---|---|
C언어 포인터 알아보기 입니다. (0) | 2017.10.26 |
C언어 열거형(enum)알아보기 입니다. (3) | 2017.09.12 |
C언어 #define, #if , #ifdef , #ifndef란 (0) | 2017.09.11 |
매개변수(Parameter,파라미터),전달인자(Argument,아규먼트)란? (2) | 2017.09.01 |