我怎么知道枚举Days
的大小?等于7*4(sizeof(int)) = 28
吗?
这里的printf()
为我提供了4
值,如何解释?
enum Days
{
saturday,
sunday ,
monday ,
tuesday,
wednesday,
thursday,
friday
} TheDay;
printf("%d", sizeof(enum Days));
我们也可以将其用作(enum Days)(0),类似于整数数组。如果size等于4,那么如何解释这种数组的行为?
最佳答案
在C语言中,所有枚举都是int
类型的大多数时间整数,这说明了为什么要使用sizeof(Days) == 4
的原因。
要知道enum
中有多少个值,您可以执行以下操作:
enum Days
{
saturday,
sunday,
monday,
tuesday,
wednesday,
thursday,
friday,
NUM_DAYS
};
然后
NUM_DAYS
将是Days
中的枚举数。请注意,如果您更改枚举的值,则此操作将无效,例如:
enum Foo
{
bar = 5,
NUM_FOO
};
在上面的枚举中,
NUM_FOO
将为6
。关于c - C语言中enum的大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9972345/