gpt4 book ai didi

c - C语言中的sizeof枚举

转载 作者:太空狗 更新时间:2023-10-29 16:57:43 24 4
gpt4 key购买 nike

我如何知道枚举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),这类似于整数数组。如果大小等于 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语言中的sizeof枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9972345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com