编译时将连续数字分配给#defines

时间:2018-12-16 00:42:54

标签: objective-c c-preprocessor

我有一系列#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)

1 个答案:

答案 0 :(得分:0)

有关评论者建议的枚举用法,请参见此答案https://stackoverflow.com/a/3035640/236415