본문 바로가기
개념/혼자 공부하는 C언어

chapter 17) 열거형을 사용한 프로그램

by kiseno 2024. 10. 2.
728x90
반응형
SMALL
#include <stdio.h>

enum season {SPRING, SUMMER, FALL, WINTER};

int main(void){
    enum season ss;
    char *pc = NULL;

    ss = SPRING;
    switch (ss){
        case SPRING: pc = "inline"; break;
        case SUMMER: pc = "swimming"; break;
        case FALL: pc = "trip"; break;
        case WINTER: pc = "skiing"; break;
    }
    printf("my regier activity  => %s\n", pc);

    return 0;
}

 

### Enum 선언

- `enum season {SPRING, SUMMER, FALL, WINTER};`는 `season`이라는 열거형을 정의하며, `SPRING`, `SUMMER`, `FALL`, `WINTER` 네 가지 열거자를 포함합니다. 이들 열거자는 0부터 시작하는 정수 값이 자동으로 할당됩니다. 즉, `SPRING`은 0, `SUMMER`은 1 등으로 할당됩니다.

### Main 함수

- `enum season ss;`는 `enum season` 타입의 변수 `ss`를 선언합니다.
- `char *pc = NULL;`는 문자 포인터 `pc`를 `NULL`로 초기화합니다. 이 포인터는 나중에 특정 시즌에 관련된 활동을 나타내는 문자열 리터럴을 가리키게 됩니다.
- `ss = SPRING;`은 시즌을 `SPRING`으로 설정합니다.
- `switch` 문은 `ss`를 평가하고, 그 값에 따라 `pc`에 문자열 리터럴의 주소를 할당합니다. 각 `case`는 다른 시즌에 해당하며, `pc`에 계절 활동을 할당합니다:
  - `SPRING`의 경우, `pc`는 `"inline"`을 가리키게 설정됩니다.
  - `SUMMER`의 경우, `pc`는 `"swimming"`을 가리키게 설정됩니다.
  - `FALL`의 경우, `pc`는 `"trip"`을 가리키게 설정됩니다.
  - `WINTER`의 경우, `pc`는 `"skiing"`을 가리키게 설정됩니다.
- 마지막으로, `printf("my regier activity  => %s\n", pc);`는 선택된 활동을 출력합니다. `ss`가 `SPRING`으로 설정되었기 때문에 출력 결과는 `"my regier activity  => inline"`이 됩니다.

728x90
반응형
LIST