-
반응형
enum 타입으로 정의된 리스트를 정리하고 있다가, 최대치가 궁금해서 간단한 확인을 해보았다. 변수들은 일반적으로 sizeof를 이용하여 크기를 알아 낼 수 있는데, sizeof(enum)이 안되기 때문에, struct로 enum 타입을 감싸고 sizeof로 크기를 확인해보았다. linux 64bit 그리고 gcc 컴파일러를 사용하였다.
#include <stdio.h> enum enum_number { ONE, TWO, THREE }; struct enum_struct { enum enum_number num; }; int main(int argc, char* argv[]) { printf("enum:%ld\n",sizeof(struct enum_struct)); return 0; }
enum:44byte 크기면, enum을 아무리 정의해도 최대치를 넘는다거나 할순 없을 것이다. 컴파일러에 따라 다르겠지만, ARM과 같은 임베디드 환경에서는 1byte일수 있다고도 한다. 1byte면 255개까지만 사용할 수 있으니 주의를 기울여야 한다.반응형