Yeonnnnny

C 언어 - enum 열거형 본문

C

C 언어 - enum 열거형

yeonny_do 2024. 9. 8. 17:47
  • 열거형은 enum 키워드를 사용하여 정의함
  • 정의만 하면 안됨. 변수로 선언해서 사용해야 함
enum 열거형 이름{
  값1 = 초깃값,
  값2,
  값3,
  ...
};

 

enum   열거형 이름   변수이름;

 

 

예시 소스코드 

#include <stdio.h>

enum fruit { // 열거형 정의 
  apple = 0, // 초깃값 할당
  grape,
  watermelon,
  peach,
  strawberry,
  banana
};

int main()
{
  enum fruit f; // 열거형 변수 선언
  
  f = strawberry; // 열거형 값 할당
  
  printf("%d\n", strawberry); // 4 : strawberry 값 출력

  return 0;
}

 

실행 결과

4

 

 

열거형 정의

  1. enum 키워드 뒤에 열거형 이름 지정
  2. 중괄호 {} 안에 열거할 값 나열
  3. 각 값들은 콤마(,)로 구분하며, 초기값 지정 할 때는 =을 사용해 값 할당
  4. 중괄호가 끝나면 ;을 붙여줌

참고로, 열거형도 typedef로 별칭을 지정하고 익명 열거형을 정의할 수 있음. 

typedef enum {
  값1 = 초깃값,
  값2,
  값3
} 열거형별칭;

 

예시는 아래와 같음

typedef enum{ // 익명 열거형 정의
  red = 0,
  orange,
  yellow,
  green,
  blue,
  indigo,
  purple
} Color; //typedef를 사용하여 열거형 별칭을 Color로 정의

Color color; // 열거형 별칭으로 공용체 변수 선언

 

열거형 값에 정수 할당

 

열거형의 값은 처음에만 할당해주면 그 아래 오는 값들은 1씩 증가하면서 자동으로 할당됨. 아무 값도 할당하지 않으면 0부터 시작함. 예를 들어 위의 코드에서 apple에 2를 할당하면 grape은 3, watermelon은 4가 되며 1 증가한 값들이 할당됨.

 

참고로, 보통 열거형을 정의할 때 위에서 언급한 것처럼 초기값을 할당하지만 다음과 같이 모든 값에 정수를 할당할 수 있음.

enum Value{
  ValueA = 1,
  ValueB = 3,
  ValueC = 7,
  ValueD = 11
}

 

 

열거형 변수 선언

정의한 열거형을 사용하려면 열거형 변수를 선언해야 함. 이때 열거형 이름 앞에 반드시 enum 키워드를 붙여야 함. 

enum fruit f;  // 열거형 변수 선언

 

보통 열거형 변수에는 미리 정의한 열거형 값을 넣음. 열거형 값 대신 정수를 할당해도 상관없지만 미리 정의하지 않은 열거형 값은 넣을 수 없음.

f = strawberry ;  // 열거형 값 할당

 

참고로, 열거형을 정의 하는 동시에 변수를 선언할 수 있음.

enum 열거형이름{
  자료형 멤버이름;
} 변수;

 

예시는 아래와 같음.

enum Season { // 열거형 정의
   Spring=0,
   Summer,
   Autumn,
   Winter
} season; // 열거형을 정의하는 동시에 변수 week 선언

 

 

 

참고 사이트 : https://dojang.io/mod/page/view.php?id=480