열거형이란?

어떤 값들을 순서대로 나열해놨다고 해서 열거형이라고 불린다.

C++ 언어에서는 enum [명칭]과 같이 사용자가 직접 정의해서 사용할 수 있다. 

 

1-0 열거형 코드

 

1-0 이미지의 주석에서도 설명했듯이 따로 숫자를 지정하지 않으면 첫 번째 값은 0으로 설정되고

그 이후 값들은 순서대로 +1 값을 가지게 된다. 

 

각각의 값들마다 원하는 정수를 지정해 줄 수 있다.

 

그렇다면 열거형은 왜 사용하는 것일까?

주된 이유는 가독성과 효율성 때문이다.

 

시스템적인 측면에서 보자면 열거형의 값들은 메모리에 올라가지 않는다. 

그렇기 때문에 각각의 값들을 int타입으로 선언했을 때보다 효율적으로 사용할 수 있다. 

 

그리고 프로그래머 입장에서 볼 때는 어떤 한 사람이 코드를 제작하는 것이 아닌

회사나 단체로 커다란 코딩을 한다고 가정하면 가독성적인 측면에서 아주 유용하다.

예를 들어 다른 사람이 작성한 코드를 이해하거나 예전에 작성한 코드를 수정할 때 

열거형을 사용하면 직관적인 문자열로 인해 코드를 파악하기 쉬워진다.


추가적으로 열거형과 비슷한 개념으로 사용할 수 있는 #define에 대해서 알아보자

#define은 #이 붙어있으므로 전처리 지시문이다.

 

전처리 지시문이란? 일반적으로 소스 프로그램을 쉽게 변경하고 여러 실행 환경에서 

쉽게 컴파일할 수 있도록 하기 위해 사용된다. 즉, 컴파일 이전의 선행 처리 같은 개념이다.

 

그럼 이 #define은 어떤 기능을 하는 것인가?

 

2-0

 

#define [명칭] [사용자 정의 값]

이런식으로 정의를 하고 메인 함수 내에서 실제로 사용할 때는

[명칭] 이후에 사용자가 직접 정의한 값이 그대로 [명칭]에 대체된다. 

 

예를 들어 2-0처럼 정의했다고 가정하자

메인 함수 내에 정의한 define을 사용하려고 [명칭]을 가져온다

 

TEST;

AAAA;

 

이런 식으로 가져오면 사전에 정의한 [사용자 정의 값]이 그대로 대체되기 때문에 

 

cout << "Hello World" << endl;
11111+22222

 

이것과 같다.

 

주의할 점은 #define에서 선언한 사용자 정의 값은 적힌 그대로 가져오기 때문에 사용 시 불편함을

유발할 수 있으며 디버깅하거나 코드를 수정할 때도 해당 define의 사용자 정의 값을 찾기 어렵기 때문에

대부분의 C++ 프로그래머들은 사용을 지양하고 있다.

 

 

+ Recent posts