我有一系列#define,我希望为其分配连续的数字在编译时,以便以后可以参考它们并了解它们的顺序。目前,我正在为每个#define分配一个数字,但是,如果更改顺序,则必须重新编号#define。
#define THING_A 1 // I'm doing this now...
#define THING_F 2
#define THING_C 3
#define THING_B 4
未显示:这些#define位于数组元素之间,请参阅元素顺序。我经常需要重新排列元素顺序。如果我重新排序,如下所示,我希望它们的编号相应地更改无需我编辑像这样的数字:
#define THING_C 1
#define THING_A 2
#define THING_B 3
#define THING_F 4
我可以用(每个#define)会导致连续分配?我不能这样使用“ __COUNTER _” ...
#define THING_B (__COUNTER__)
...,因为以后每次使用定义的值时,它都会变大。这是什么(东西)?
#define THING_A (something)
#define THING_B (something)
#define THING_C (something)
#define THING_D (something)
请参见此答案https://stackoverflow.com/a/3035640/236415,以了解如何使用注释者建议的枚举。