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