반응형
열거형이란?
구조체, 공용체의 경우 멤버에 저장할 값의 타입을 미리 결정한다.
하지만 열거형은 저장이 가능한 값 을 정수의 형태로 결정한다.
(열거형은 산술연산자를 사용할 수 없다.)
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);
}
반응형