카테고리 없음

enum (열거형)

zuyo 2019. 5. 8. 22:44
반응형

열거형이란?

구조체, 공용체의 경우 멤버에 저장할 값의 타입을 미리 결정한다.
하지만 열거형은 저장이 가능한 값 을 정수의 형태로 결정한다.
(열거형은 산술연산자를 사용할 수 없다.) 

enum test
{
     Do = 1, Re =  2 // Do는 정수 1을, Re는 정수 2를 의미하는 상수로 정의한다
} Test;
enum color
{
      RED, BLUE, GREEN // 상수의 값이 선언되있지 않은 경우에는 0부터 1씩 증가하는 형태로 결정한다
};
enum color
{
      RED = 4, BLUE, GREEN 9 // 중간값이 선언이 안 된 경우에는 이전 값보다 1이 증가된 값이 할당된다 (BLUE = 5)
}

활용 예

여러개의 연관있는 단어를 상수로 선언해서(직급, 음계 등) 프로그램의 가독성을 높힌다

#include<stdio.h>

typedef enum syllable
{
	Do=1, Re=2, Mi=3, Fa=4, Sol=5, La=6, Ti=7 // 각 음계들은 각각의 정수들을 의미하게 된다.
}Syllable;

void Sound(Syllable s)
{
	switch(s)
	{
	case Do:
		puts("도는 하얀 도라지");
		return;
	case Re:
		puts("레는 둥근 레코드");
		return;
	case Mi:
		puts("미는 파란 미나리");
		return;
	case Fa:
		puts("파는 예쁜 파랑새");
		return;
	case Sol:
		puts("솔은 작은 솔방울");
		return;
	case La:
		puts("라는 라디오고요");
		return;
	case Ti:
		puts("시는 졸졸 시냇물");
		return;
	}
}

void main()
{
	Syllable melody;
	Sound(Do);
	Sound(Sol);
	Sound(Ti);
}
반응형