ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C언어, enum 타입의 크기는?
    2012. 12. 19. comments
    반응형

    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:4


    4byte 크기면, enum을 아무리 정의해도 최대치를 넘는다거나 할순 없을 것이다. 컴파일러에 따라 다르겠지만,  ARM과 같은 임베디드 환경에서는 1byte일수 있다고도 한다. 1byte면 255개까지만 사용할 수 있으니 주의를 기울여야 한다. 


    반응형

    댓글

Designed by Tistory.