반응형
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;
}
결과)
반응형
'C언어 \ C++' 카테고리의 다른 글
[C언어] c언어 소문자 대문자 변환, 대문자 소문자 변환 (0) | 2021.11.15 |
---|---|
[C언어] c언어 char -> int 변환 (C언어 문자열 정수 변환, 아스키코드 변환) (0) | 2021.11.15 |
[C언어] c언어 atoi함수, atof 함수 예제 (아스키코드 정수형 실수형 변환) (0) | 2021.09.26 |
[C언어] C언어를 통한 메모리 구조 이해, c언어 동작 순서 이해 (0) | 2021.09.24 |
[C언어] 2차원 오름차순 행렬 sort 정렬, C lanugae sort for array (1) | 2021.09.20 |