우리가 기본적으로 배운 타입들 외에도 사용자의 편의에 맞춰서 정의한 타입들이 존재합니다.
1. 구조체
2. 공용체
3. enum
4. class
5. interface
이렇게 총 5가지의 사용자 정의 타입이 존재하는데요.
이 페이지에서는 공용체와 enum에 대해서 다뤄보도록 하겠습니다.
공용체란?
공용체는 구조체와 비슷한 성질을 띄는 사용자 정의 타입입니다. 공용체와 구조체의 차이에는 메모리 공간을 어떻게 사용하는지에 있는데요.
이렇게 구조체는 각각의 변수들이 따로따로 크기를 차지하고 합쳐진 메모리를 사용한다면 공용체는 변수중 가장 큰 메모리만큼의 공간을 공유합니다.
공용체의 형태
union 공용체 {
공용체변수
}
이와 같이 구조체와 공용체가 서로 다른 타입의 데이터들을 모아놨다면 열거형태인 enum은 연속된 데이터들을 정의할 때 사용합니다.
enum(열거형)
열거형은 데이터들을 열거한 집합을 말합니다. 이때 열거형의 변수들을 정수형 상수로 취급을 한다는 점 주의해 주세요!
열거형의 형태
enum week {
sun = 0, mon, tue, wed, thu, fri, sat
}
이와 같이 sun을 0으로 지정해 줌으로 인해 mon는 자동적으로 1, 그 옆에는 2,3,4,5,6,7 과같은 정수형 상수가 나타낼 수 있습니다.
그렇다면 만약에 0으로 시작을 안 하거나 중간에 숫자를 바꾸면 어떻게 될까요?
enum week {
sun = 10, mon, tue, wed, thu, fri, sat
}
// sun 10, mon 11, tue 12, wed 13, thu 14, fri 15, sat 16
enum week {
sun = 0, mon, tue, wed=100, thu, fri, sat
}
// sun 0, mon 1, tue 2, wed 100, thu 101, fri 102, sat 103
위와 같이 지정해 준 수에서 1씩 추가되고 중간에 값이 바뀌면 바뀐 값에서 1씩 증가하는 것을 알 수 있습니다.
'프로그래밍📚' 카테고리의 다른 글
사용자 정의 타입이란? - interface (0) | 2024.02.05 |
---|---|
사용자 정의 타입이란? - class (0) | 2024.02.05 |
사용자 정의 타입이란? - 구조체 (0) | 2024.02.05 |
함수포인터란? (0) | 2024.02.04 |
함수와 배열, 포인터 개념알기 (0) | 2024.01.29 |