编译时将连续数字分配给#defines
Compile-time assignment of consecutive numbers to #defines
我有一系列#defines,我想分配连续的数字
在编译时这样我可以稍后参考它们并知道它们的顺序。
目前,我正在按顺序为每个 #define 分配一个数字,
但是,如果我更改顺序,我必须重新编号#defines。
#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)
请参阅此回答 ,了解如何按照评论者的建议使用枚举。
我有一系列#defines,我想分配连续的数字 在编译时这样我可以稍后参考它们并知道它们的顺序。 目前,我正在按顺序为每个 #define 分配一个数字, 但是,如果我更改顺序,我必须重新编号#defines。
#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)
请参阅此回答 ,了解如何按照评论者的建议使用枚举。