我需要使数组像枚举一样工作,我可以在初始化期间更改数组中元素的索引位置。例如,我们可以有一个枚举
enum Fruit_t {
APPLES,
ORANGES,
STRAWBERRIES = 8 }
在这里,草莓而不是 2,变成了 8。这可以在数组中完成,位置可以改变吗?这在C中可能吗?如果是,请问如何?
任何其他可能的建议将不胜感激
让我解释一下我的意图
我正在使用一个函数指针数组
static BT (*data_access_typ [4])() =
{
NULL,
ARRAY,
STRUCT,
dnt_cr
};
我需要调用这个函数
(access_data[*VAL])()
其中 *VAL 可以是此枚举中的任何此值
enum data_access_typ {
Null, array, struc, bool, bit_str, int32, unsin32, float_pt, oct_str=9, vis_str,
bcd=13, int8=15, int16, unsin8, unsin16, int64=20, unsin64, _enum, float32, float64,
date_tim, date, time, dnt_cr=225
};
如果值是 NULL、ARRAY、STRUCT,直到 dnt_car (255),则需要执行单独的函数,但我不需要所有类型。只有几个 5 或 6 个功能。所以我真的不打算使用枚举(仍然试图弄清楚如何让它为我想做的事情工作)。
我想要做的是,*VAL 的值决定了在函数指针数组中调用哪个函数,其索引应该对应于假定枚举中的值。
例如,
(access_data[*VAL])()
从上面的代码中,它只会在 *VAL 为 3 时调用 dnt_cr 函数,但我想要的是在 *VAL 为 225 时调用 dnt_cr。
我希望这很清楚...