我有一个 C 头文件中的值枚举。我想定义一个额外的数组或一组值,其中每个值对应一个枚举值。本质上,该数组将是与每个枚举值相关的一些信息的查找表。但是,我想在编译时在头文件中执行此操作。
有什么好方法可以做到这一点?
这是一个如何使用两个单独的枚举或定义结构来完成它的示例。有没有更优雅的方法来仅使用操作枚举来完成此操作?
enum op {
op1,
op2,
op3
};
enum op_information {
op1_info = 0xff,
op2_info = 0xf3,
op3_info = 0xc1
}
更新:如果有任何方法可以使用引用静态定义数组,那么对我来说同样有价值的帮助是回答。也就是说,而不是这样做:
ushort op_information = { 0xff, 0xf3, 0xc1 },
我们能做到吗
ushort op_information[3]
op_information[op.op1] = 0xff;
op_information[op.op2] = 0xf3;
op_information[op.op3] = 0xc1
在编译时?