본문 바로가기
프로그래밍/C

[ C언어 ] enum 의 활용 + 사용예제

by eteo 2022. 4. 26.

열거형 enum은 관련이 있는 정수형 상수의 집합으로 typedef로 별칭을 정의하면 더욱 편리하게 사용 가능하다.

 

간단한 예제

#include <stdio.h>

typedef enum {
	FALSE,
	TRUE
}boolean;

typedef enum {
	MALE =1,
	FEMALE
}gender;

int main(void) {

	boolean exit=FALSE;
	char answer;

	while (exit == FALSE) {
		printf("성별을 입력하세요(1.남자, 2.여자):");
		scanf_s("%hhd", &answer);
		rewind(stdin);
		if (answer == FEMALE) {
			printf("여자입니다.\n");
		}
		else if (answer == MALE) {
			printf("남자입니다.\n");
		}else if (answer == FALSE) {
			exit = TRUE;
		}
	}
	return 0;
}

 

enum의 장점은 코드가 단순해지고 가독성이 좋아진다. 

예제를 보면 단순히 answer == 0 또는 1 이라고 숫자를 사용하는 것보다 enum을 활용해 개발자의 의도를 직관적으로 파악이 가능하며 typedef를 사용해서 별칭으로 열겨형 변수를 선언해 사용할 수도 있다. (예제에서 boolean형 exit 선언)

열거형의 멤버는 따로 정의해주지 않는다면 첫번째 멤버가 0이고 순번에 따라 1씩 증가한다. 위의 gender 와 같이 MALE을 1로 지정해주면 FEMALE은 자동으로 2가 된다.

또한 기호 상수와 마찬가지로 대문자를 사용하는 것이 관례이다.

 

실제 프로젝트 내 enum 활용의 예제

 

2022.05.27 - [MCU/STM32 (ARM Cortex-M)] - STM32 , UART 통신으로 피아노 연주하기 , PWM Frequency 제어 ( Passive Buzzer )