5.6.2 열거형

    C 언어는 앞에서 본 예제처럼 작은 정수에 이름을 붙이기에 간편한 메커니즘인 열거형(enumeration)C을 제공한다.

    enum corvid { magpie, raven, jay, corvid_num, };
    char const*const bird[corvid_num] = {
      [raven] = "raven",
      [magpie] = "magpie",
      [jay] = "jay",
    };
    ...
    for (unsigned i = 0; i < corvid_num; ++i)
        printf("Corvid %u is the %s\n", i, bird[i]);

    이 코드에서는 서로 다른 네 가지 값을 갖는 enum corvid라는 새로운 정수 타입을 만들었다.

    TAKEAWAY 5.42 열거형 상수 값을 직접 지정할 수도 있고, 위치에 따라 결정할 수도 있다.

    예상하듯이 값을 위치로 결정할 때는 0부터 시작한다. 따라서 앞 코드에서 raven은 0, magpie는 1, jay는 2, corvid_num은 3이 된다. 마지막에 나오는 3은 까마귀 종류의 수를 가리킨다.

    ▲ 그림 5-6 열거형 상수로 배열의 값을 지정한 경우

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.