1. 공용체
구조체와 유사한 데이터 타입이지만 공용체의 모든 멤버가 메모리의 같은 위치를 공유한다.
따라서, 공용체의 크기가 가장 큰 멤버의 크기와 동일하며, 하나의 멤버만 저장하거나 접근할 수 있다.
1.1 기본 구조
union 키워드를 사용하여 선언한다.
해당 코드에서는 str[20]이 가장 크므로 Data라는 공용체의 크기는 20Byte 이다.
union Data {
int i;
float f;
char str[20];
};
// 변수 선언 ( 구조체와 유사 )
union Data data;
data.i = 10;
data.f = 220.5;
printf("data.f: %f\\n", data.f);
2. 열거형
상수를 더 읽기 쉽게 정의할 수 있게 해주는 데이터 탑이다.
enum 키워드를 사용하여 정의된다.
2.1 기본 구조
기본 타입은 int 형이다.
enum Season { SPRING, SUMMER, FALL, WINTER };
2.2 열거형 상수의 값
열거형에서 상수의 값을 명시적으로 할당하지 않으면, 첫 번째 상수에 0을 할당하고 , 1 씩 증가한다.
enum Season { SPRING = 1, SUMMER, FALL, WINTER }; // 1 , 2 , 3 , 4 순으로 증가
2.3 열거형 사용
변수를 선언하고, 값을 할당할 수 있다.
enum Season mySeason;
mySeason = SUMMER;