C Typedef类枚举变量,但具有任意增量

C Typedef类枚举变量,但具有任意增量,c,C,我有兴趣做一些类似于enum的事情,但增量并不总是一个,有点像这样: typedef enum{this=0,that=3,something=5}example; 我想知道什么是最好的方式来做这样的事情,因为我收集上述要么是不可能或不建议。基本上我想使用引用特定整数值的kconstantname。。。我应该使用#define语句吗?这是允许的,非常正常,而且肯定比#define更好 细微的挑剔:#define不是一句话。它是一个预处理器构造,在编译器看到它之前就展开了。我认为“枚举”指的是一

我有兴趣做一些类似于
enum
的事情,但增量并不总是一个,有点像这样:

typedef enum{this=0,that=3,something=5}example;

我想知道什么是最好的方式来做这样的事情,因为我收集上述要么是不可能或不建议。基本上我想使用引用特定整数值的
kconstantname
。。。我应该使用
#define
语句吗?

这是允许的,非常正常,而且肯定比
#define
更好


细微的挑剔:
#define
不是一句话。它是一个预处理器构造,在编译器看到它之前就展开了。

我认为“枚举”指的是一组枚举值,增量为1,介于1和1之间?这是默认值。正如您所做的那样,指定特定值是合法的,并且通常用于定义位掩码(除其他外):
enum{foo=1、bar=2、baz=4、woz=8、…}
。它们是否需要按顺序排列?或者你能把baz=4放在foo=1之前吗?不,它们可以是你想要的任何顺序。唯一的规则是,没有显式值的任何项都会得到其前一项的值加上一(如果它是第一项,则为零)。在混合隐式和显式枚举常量时只需小心:
enum{foo=1,bar,baz=2,…}
将导致
bar
baz
的值相同。