Gae Ko's Blog

[C] enum 그리고 enum&typedef 본문

프로그래밍언어/C

[C] enum 그리고 enum&typedef

Gae Ko 2018. 3. 10. 00:40

>> 2주차 과제를 하다가 알게 된 것들



1. enum (열거형)


열거형은 정수형 상수에 이름을 붙여서 코드를 이해하기 쉽게 해준다. 

만약 다음과 같이 var1, var2, var3 라는 정수형 상수를 선언해야하는 상황에서 2-3개는 괜찮지만 그 개수가 많아지면 일일이 선언하기가 귀찮아짐.

 

1
2
3
const int Var1 = 1;
const int Var2 = 2;
const int Var3 = 3;
cs


이런 경우 열거형을 사용하면 정수형 상수를 좀 더 편하게 정의할 수 있음 



열거형 정의 방법은 다음과 같다. 

1
2
3
4
5
enum 열거형이름 {
    값1 = 초깃값,
    값2,
    값3
};
cs


정의한 열거형을 사용하려면 열거형 변수를 선언해야 한다.

- 선언 방법 : enum 열거형이름 변수이름 


// 문법으로 정해진 규칙은 아니지만 열거형 이름이나 값을 정의할 때 대문자만 사용하는 경우가 많다 


(예제)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
 
enum DayOfWeek {    // 열거형 정의
    Sunday = 0,         // 초깃값 할당
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday
};
 
int main()
{
    enum DayOfWeek week;    // 열거형 변수 선언
 
    week = Tuesday;    // 열거형 값 할당
 
    printf("%d\n", week);   // 2: Tuesday의 값 출력
 
    return 0;
}
cs


2. typedef와 익명 열거형 


1
2
3
4
5
typedef enum 열거형이름 {
    값1 = 초깃값,
    값2,
    값3
} 열거형별칭;
cs


typedef로 열거형의 별칭을 만들었다면 변수는 다음과 같이 선언한다.

- 선언 방법 : 열거형별칭 변수이름;


(예제)

1
2
// c언어에는 다른 언어와 달리 불린(boolean)형이 따로 없다. 
typedef enum { FALSE, TRUE } Boolean ; 
cs

// 수업시간에 교수님께서 반드시 FALSE가 먼저 선언되어야 한다고 하셨는데 그 이유가 FALSE 값이 0으로 인식되고 TRUE값은 1로 인식되도록 하기 위함이었다. ㅎㅎ 

// 일반적으로 다른언어에서도 그렇고 false = 0, true = 1이니까 


[참고]

https://dojang.io/mod/page/view.php?id=480

☞ http://sciphy.tistory.com/899 ( 열거형 & 구조체 & 공용체)

'프로그래밍언어 > C' 카테고리의 다른 글

[C] 포인터  (0) 2018.03.28
[C] 구조체  (0) 2018.03.18
[C] 표준입력함수 scanf()  (0) 2018.03.10
[C] double형 변수에 대한 절대값 구하기 : fasb()  (0) 2018.03.09
[C] Main 함수의 매개변수 (argc, argv)  (1) 2018.01.16