티스토리 뷰
안녕하세요, IT디자이너입니다.
이번에는 열거형의 정의와 의미에 관하여 포스팅하도록 하겠습니다.
열거형은 둘 이상의 연관된 int 타입의 상수형 자료형을 선언하여 프로그램의 가독성을 높이는데 유용한 자료형입니다.
enum 의 사용방법을 보여드리도록 하겠습니다.
#include <stdio.h>
enum color {
red = 0,blue,white,black
};
int main()
{
printf_s("%d",red);
}
enum은 구조체 사용방법과 많이 유사합니다. struct를 사용하는 대신 enum을 입력하며, 첫번재 변수부터 마지막 변수까지 +1씩 증가하는 형태입니다.
red == 0, blue == 1, white == 2, black ==3 이며, main 함수안의 소스코드를 출력시 0이 출력될 것입니다.
#include <stdio.h>
enum color {
red = 0,blue = 3 ,white,black
};
int main()
{
printf_s("%d",red);
}
위 소스코드는 enum 값중 blue를 3으로 초기화하였습니다. 중간에 다른 숫자로 초기화할 경우 해당 숫자에서 +1씩 증가하여,
red == 0, blue ==3, white ==4, black ==5의 형태로 초기화된 것을 확인할 수 있을 것입니다.
이번에는 실제로 활용되는 부분으로서 예제 소스코드를 보여드리겠습니다.
#include <stdio.h>
typedef enum color {
red,blue,white,black
}Color;
void selectColor(Color cr) {
switch (cr) {
case red:
printf_s("레드를 선택하였습니다.");
break;
case blue:
printf_s("블루를 선택하였습니다.");
break;
case white:
printf_s("화이트를 선택하였습니다.");
break;
case black:
printf_s("블랙을 선택하였습니다.");
}
}
int main()
{
Color cr;
scanf_s("%d", &cr);
selectColor(cr);
}
관련된 둘 이상의 데이터를 typedef를 이용해서 enum 자료형을 정의하였습니다. 함수를 정의하는 과정에서 매개변수의 데이터 타입을 enum으로서 조금 더 가시적으로 표현하는 방법입니다.
또한 사용자의 입력값 또한 enum 데이터 타입을 입력을 받는다는 것을 명시적으로 정의하였습니다.
프로그래머는 다른 사람과 협업을 하는 경우가 많기 때문에 다른 프로그래머가 보고 쉽게 이해할 수 있는 코드가 좋은 코드라고 할 수 있습니다.
이상 IT디자이너였습니다.
감사합니다.
'Language > C 언어' 카테고리의 다른 글
C언어 구조체의 숨겨진 특징 (0) | 2020.03.27 |
---|---|
if문과 switch 문의 오해와 진실 & 어셈블리어 (0) | 2020.03.26 |
C/C++ 함수의 호출 규약 (Calling Convention) with 어셈블리 (1) | 2020.03.24 |
C/C++언어의 비트연산자 사용방법 및 활용 용도 (1) | 2020.03.20 |
C언어의 기억클래스, 속성 수식자 (0) | 2020.03.20 |
- Total
- Today
- Yesterday
- C언어 #C++ #어셈블리어 #재귀함수 #IT디자이너
- C언어 #C++ #자료구조 #알고리즘 #IT디자이너 #버블 정렬 #BubbleSort
- IT디자이너 #QuickSort #퀵정렬 #C언어 #C++ #자료구조 #알고리즘
- 디버그 #Debug #Release #디버그와 릴리즈 차이 #C언어 #C++언어 #어셈블리어
- 스택 #자료구조 #Stack #IT디자이너 #알고리즘 #C언어 #스택 과제 #C++
- QUEUE #큐 #자료구조 #원형 큐 #Circle Queue #IT디자이너 #큐 과제 #C언어 #C++언어
- IT디자이너 #C언어 #C++ #IT디자이너 #코딩테스트
- C언어 #C++ #파일 입출력 #텍스트파일 #IT디자이너
- Debug #C언어 #C++ #비쥬얼스튜디오 #Release #IT
- C언어 #C++ #시간 함수 #타이밍 맞추기 #timer interrupt #IT디자이너
- C언어 #C++ #어셈블리어 #열거형 데이터타입 #IT디자이너
- C언어 #스트림 #버퍼링 #표준 입출력 함수 #C++언어 #IT디자이너
- C언어 #자료구조 #C++ #연결리스트 #리스트 #알고리즘 #IT디자이너
- C언어 #IT디자이너 #C++언어
- C언어 #포인터 #IT디자이너
- C언어 #C++ #IT디자이너 #함수 #재귀 함수 #스택 #자료구조 #페인팅
- C언어 #C++ #삼각함수 #IT디자이너 #문제풀이 #2진수 #16진수 #비트 #bit #비트연산자
- 어셈블리어 #IT디자이너 #C언어 #C++언어 #어셈블리 #어셈블러
- C언어 #C++ #IT디자이너
- C언어 #포인터 #배열 포인터 #포인터 배열 #함수
- C언어 #C++ #어셈블리어 #구조체 #구조체 특징 #IT디자이너
- C언어 #C++ #IT디자이너 #C++ 함수
- C언어 #IT디자이너 #포인터 #배열 #포인터와 배열
- C언어 #C++ #switch #if #어셈블리어 #switch문 사용 이유 #IT디자이너
- C언어 #C++ #구조체 정렬 #pragma #IT디자이너
- C언어 #C++ #캐시hit #캐시라인 #캐시무효화
- IT디자이너 #C언어 #C++ #속성지정자 #기억클래스 #IT #const #static #register #volatile #extern #auto #s
- C언어 #C++ #어셈블리어 #함수 호출 규약 #IT디자이너 #비쥬얼 스튜디오 #IT
- C언어 #C++ #어셈블리어 #IT디자이너 #비트연산자 #연산자 #C언어의 비트 연산자
- C언어 #IT디자이너
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |