반응형

열거형

2019.2.18

 

 

열거형(Enum) 이름을 갖는 상수를 연속적으로 정의하는 것으로

 

프로그램의 소스 코드를 이해하기 쉽도록 도와준다.

 

-

 

요일의 값에 따라 자료를 처리해야 하는 프로그램을 작성해야 하는 예를 생각해 보자.

 

이 경우 월, 화, 수, 목, 금, 토, 일에 따라 각각의 특별한 값을 저장하여 요일별로 조건을 처리할 수 있을 것이다.

 

-

 

 

-

 

예를 들어 위의 내용과 같이 월요일은 0, 화요일은 1이라는 값을 연속적으로 할당하여 처리할 수 있겠지만

 

소스 코드의 내용이 복잡해지면 이러한 상수가 어떤 값을 의미하는지 이해하기 어려워지게 된다.

 

-

 

 

-

 

하지만

 

위의 내용처럼 매크로를 이용하여 각 요일의 값들을 정의하여 구현하면

 

상수가 어떤 의미를 갖는지 명확해지므로 소스 코드의 가독성이 높아질 것이다.

 

그렇지만

 

이 경우에도 각각의 상수값을 모두 정의해주어야 하는 단점이 있는데

 

이 같은 상황에서 상수의 정의를 쉽게 할 수 있도록 도와주는 것이 바로 열거형이다.

 

열거형은 다음과 같은 문법을 갖는다.

 

-

 

 

-

 

열거할 리스트를 정의할 때 값을 명시하지 않을 때는 자동으로 0부터 1씩 증가하면서 값이 할당되지만

 

대입 연산자(=)를 이용하여 값을 명시하면서 정의해 줄 수도 있다.

 

다음의 예제는 열거형을 사용하는 예시이다.

 

-

 

test49.c
0.00MB

 

-

 

 

 

-

 

위 예제는 두 가지 열거형 자료형을 정의한 뒤에 사용하는 예를 보여주고 있다.

 

첫 번째 열거형 자료형은 3행에서 정의되고 있는데 

 

요일 정보를 갖는 열거형 자료형으로 열거형 리스트의 값을 명시하지 않았기 때문에

 

그 값들은 0부터 시작되어서 자동으로 6까지 할당되었다.

 

하지만

 

4행에서 정의된 두 번째 열거형 자료형은 열거 리스트를 명시하면서 그 값들을 함께 정의하고 있다.

 

A의 값은 100이 할당되고

 

B는 103이 할당되었다.

 

C의 값은 명시하지 않았는데

 

이때는 자동으로 마지막 할당된 값인 103의 다음 값으로 104가 할당된다.

 

실행 결과를 확인해 보면

 

변수 A와 B 그리고 C의 값이 각각 100, 103 그리고 104로 저장된 것을 알 수 있다.

 

16행부터 25행까지의 경우 열거형 자료형을 어떻게 사용할 수 있는지 보여주고 있다.

 

이처럼

 

열거형 자료형 변수를 사용하기 위해서는

 

기존의 변수를 선언하여 사용하는 것처럼 동일하게 사용할 수 있다.

반응형

'시작하지 말았어야 했던 것 > C언어 기본 문법' 카테고리의 다른 글

문자열(1) 문자열 상수와 포인터 변수  (0) 2021.02.06
포인터  (0) 2021.02.06
25. 구조체와 공용체의 혼용  (0) 2021.02.01
24. 공용체  (0) 2021.02.01
23. 비트 필드  (0) 2021.02.01

+ Recent posts