더북(TheBook)

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 열거형 상수로 배열의 값을 지정한 경우

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