반응형

enum을 선언하면 한거번에 여러 상수를 선언할 수 있다.

상수에 각각 값을 하나씩 넣을 수 있지만, 만약 앞에 값을 하나 넣고 뒤에 값을 넣지 않으면 자동으로 뒤에 1씩 증가한다.

예를 들어 아래 ga = 1을 넣고 뒤에 상수들을 쭉 입력하면 자동으로 na, da, ra ...에 2,3,4... 입력된다.

반응형
#include <stdio.h>

/*
	열거형 선언하기.
	enumerate : enum
	enum 으로 선언된 값은, 상수형태로 저장되어 어디에서든 사용할 수 있다.
	목적은, 프로그램의 가독성을 높이는데 있다.
	열거형 예제.
*/


enum  // ga의 값만 정해도 뒤부터는 1씩 증가함.
{
	ga = 1, na, da, ra, ma, ba, sa
};


// typedef를 이용.
// 굳이 typedef를 쓸 필요가 없다. 오히려 다수의 상수를 한번에 표현하는 것이 더 의의가 있다.
typedef enum syllable	// 다수의 상수가 동시에 선언. 도레미파솔라시
{
	Do = 1, Re = 2, Mi = 3, Fa = 4, So = 5, La = 6, Ti = 7	//	이렇게 열거하며 값을 넣을 수 있다.
}Syllable;

void Sound(int sy)
{
	switch (sy)
	{
	case Do:
		puts("도~~!");
		return;
	case Re:
		puts("레@@~");
		return;
	case Mi:
		puts("미$$$~");
		return;
	case Fa:
		puts("파~~~~~~!!");
		return;
	case So:
		puts("솔~~~~~~~~~~~~~~!");
		return;
	case La:
		puts("라~~~~~~~~~~~~~~~~~~!!");
		return;
	case Ti:
		puts("시~~~~~~~~~~~~~~~~~~~~~~!!");
		return;
	}
	puts("노래 부릅세");
}

int main()
{
	int tone;
	for (tone = Do; tone <= Ti; tone += 1)	//	다시말해 for(tone = 1; tone <= 7 ; tone += 1) 과 같다. 상수이기 때문에.
	{
		Sound(tone);
	}

	printf("%d, %d, %d, %d, %d, %d, %d \n", ga, na, da, ra, ma, ba, sa);

	return 0;
}

 

결과)

 

 

 

 

 

반응형

+ Recent posts