枚举类型内存空间问题,求教~~
我定义了一个枚举类型,请问它的内存空间是多少呢?
typedef enum{
UP,
DOWN,
RIGHT,
LEFT
}DIRECT;
编译器此时为它分配内存么?大小是多少?谢谢,请指教。。
为什么printf("%d\n",sizeof(DIRECT));结果是4。
我认为应该为它分配4个int的大小,因为4个int值都存在,因该说4×4 = 16啊
[解决办法]
它没有空间,它只是定义了一些常量而已。你不能用struct的相同的思路去认为它,对于sizeof(DIRECT),因为可以将DIRECT看作是int,所以算出来的是4
[解决办法]
typedef enum{ UP, DOWN, RIGHT, LEFT }DIRECT;