열거형이란?
어떤 값들을 순서대로 나열해놨다고 해서 열거형이라고 불린다.
C++ 언어에서는 enum [명칭]과 같이 사용자가 직접 정의해서 사용할 수 있다.

1-0 이미지의 주석에서도 설명했듯이 따로 숫자를 지정하지 않으면 첫 번째 값은 0으로 설정되고
그 이후 값들은 순서대로 +1 값을 가지게 된다.
각각의 값들마다 원하는 정수를 지정해 줄 수 있다.
그렇다면 열거형은 왜 사용하는 것일까?
주된 이유는 가독성과 효율성 때문이다.
시스템적인 측면에서 보자면 열거형의 값들은 메모리에 올라가지 않는다.
그렇기 때문에 각각의 값들을 int타입으로 선언했을 때보다 효율적으로 사용할 수 있다.
그리고 프로그래머 입장에서 볼 때는 어떤 한 사람이 코드를 제작하는 것이 아닌
회사나 단체로 커다란 코딩을 한다고 가정하면 가독성적인 측면에서 아주 유용하다.
예를 들어 다른 사람이 작성한 코드를 이해하거나 예전에 작성한 코드를 수정할 때
열거형을 사용하면 직관적인 문자열로 인해 코드를 파악하기 쉬워진다.
추가적으로 열거형과 비슷한 개념으로 사용할 수 있는 #define에 대해서 알아보자
#define은 #이 붙어있으므로 전처리 지시문이다.
전처리 지시문이란? 일반적으로 소스 프로그램을 쉽게 변경하고 여러 실행 환경에서
쉽게 컴파일할 수 있도록 하기 위해 사용된다. 즉, 컴파일 이전의 선행 처리 같은 개념이다.
그럼 이 #define은 어떤 기능을 하는 것인가?

#define [명칭] [사용자 정의 값]
이런식으로 정의를 하고 메인 함수 내에서 실제로 사용할 때는
[명칭] 이후에 사용자가 직접 정의한 값이 그대로 [명칭]에 대체된다.
예를 들어 2-0처럼 정의했다고 가정하자
메인 함수 내에 정의한 define을 사용하려고 [명칭]을 가져온다
TEST;
AAAA;
이런 식으로 가져오면 사전에 정의한 [사용자 정의 값]이 그대로 대체되기 때문에
cout << "Hello World" << endl;
11111+22222
이것과 같다.
주의할 점은 #define에서 선언한 사용자 정의 값은 적힌 그대로 가져오기 때문에 사용 시 불편함을
유발할 수 있으며 디버깅하거나 코드를 수정할 때도 해당 define의 사용자 정의 값을 찾기 어렵기 때문에
대부분의 C++ 프로그래머들은 사용을 지양하고 있다.
'프로그래밍 언어 공부 > C++' 카테고리의 다른 글
함수 매개변수 기본값 설정 / 오버로딩 개념 (0) | 2022.05.29 |
---|---|
함수와 스택 프레임 (0) | 2022.05.27 |
분기문, 반복문을 활용해 코딩 연습하기 (0) | 2022.05.25 |
const와 메모리 구조 (0) | 2022.05.23 |
비트 플래그 (0) | 2022.05.22 |