728x90
열거형(enumeration)이란 변수가 가질 수 있는 값들을 나열해 놓은 자료형이다.
즉, 변수가 가질수 있는 상수값들을 나열해 놓은 자료형. 열거형으로 선언된 변수는 나열된 변수만 가질 수 있다.
예를 들어서, 요일을 나타내는 변수를 d라고 했을때, d는 월, 화, 수, 목, 금, 토, 일 만을 변수로 가질 수 있다.
그렇다면 열거형은 왜 쓰는가?
방금 전의 예처럼 월요일은 0, 화요일은 1, 수요일은 2 이런식으로 나타낼 수 있지만, 이렇게 하게 된다면 오류의 가능성, 가독성이 좋지않은 문제가 있다. 그렇기 때문에 MON, TUE, WED처럼 기호상수로 정의하는게 바람직하다고 볼 수 있다.
그렇다면 열거형을 한번 정의해보자.
예를 들어 요일을 나타내는 열거형을 정의해보면,
1
2
3
4
5
6
7
8
9
|
enum days {
SUN,
MON,
TUE,
WED,
THU,
FRI,
SAT
};
|
cs |
이렇게 정의할 수 있다.
그리고 이 열거형을 가지는 변수를 선언해보자.
1
2
3
4
5
6
7
8
9
10
11
|
enum days {
SUN, //0
MON, //1
TUE, //2
WED, //3
THU, //4
FRI, //5
SAT //6
};
enum days d;
|
cs |
days라는 열거형을 가지는 변수 d를 선언했다.
기호상수는 차례로 0, 1, 2, .. 증가하는 값을 가진다.
1
2
3
4
5
6
7
8
9
10
11
|
#include <stdio.h>
enum days {MON, TUE, WED, THU, FRI, SAT, SUN};
int main(void)
{
enum days d;
d = WED;
printf("%d\n", d);
return 0;
}
|
cs |
열거형 days를 가지는 변수 d를 선언한 후에, d에 WED기호상수를 넣는다. 0부터 시작한다 했으니 WED는 2값을 가진다.
728x90
'C프로그래밍 > 개인 공부' 카테고리의 다른 글
C언어 - 연결리스트 (0) | 2022.12.20 |
---|---|
C언어 - 동적 메모리 (0) | 2022.12.14 |
C언어 - 구조체와 함수 (0) | 2022.12.11 |
C언어 - 구조체안에 문자배열? or 문자형을 가르키는 포인터? (0) | 2022.12.11 |
C언어 - 구조체와 포인터 (0) | 2022.12.10 |