gpt4 book ai didi

c++ - C/C++ 创建一个带有负值的枚举,而不必对其编号

转载 作者:IT老高 更新时间:2023-10-28 21:49:03 26 4
gpt4 key购买 nike

例如在 C/C++ 中,我会得到以下代码:

typedef enum fruits{
apple,
banana,
lemon,
orange
} fruit_t;

相当于:

typedef enum fruits{
apple = 0,
banana = 1,
lemon = 2,
orange = 3
} fruit_t;

但是,我希望这些值是负数,这样它们就不会与其他任何东西发生冲突。我可以这样做:

typedef enum fruits{
apple = -1,
banana = -2,
lemon = -3,
orange = -4
} fruit_t;

但是如果我想添加另一个水果,我必须分配另一个值,如果我在中间放一个,我必须重新编号它的大部分。有没有更简单的方法?

最佳答案

INT_MIN 开始像这样在上面:

#include <limits.h>

enum fruits
{
orange = INT_MIN,
lemon,
...
}

根据 C11 标准 INT_MIN 的“5.2.4.2.1 整数类型的大小”和/或“附录 E/1”至少是 -32767 .

INT_MIN通过包含 <limits.h> 来定义.

关于c++ - C/C++ 创建一个带有负值的枚举,而不必对其编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21027298/

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