如果有这样的枚举:
typedef enum {
ValueOne = /* some arbitrary number, NOT necessarily 0 */,
ValueTwo = /* another number, NOT necessarily consecutive */
} MyEnumeration;
我想知道是否有任何方法可以从中获取数组并在不执行此操作的情况下访问特定索引处的值:
int array[2] = {ValueOne, ValueTwo};
MyEnumeration value = array[provided_index];
我的问题是,在我的项目中,枚举有10-15个值,而我宁愿不从每个值中创建一个数组。
[编辑]:由于typedef
和enum
根本没有捆绑在一起,我可以看到这将不的可能性如何,但我认为它不会如果我遗失了什么,我会受伤。
答案 0 :(得分:5)
答案 1 :(得分:-2)
我会彻底废除枚举。如果你必须将它存储在数组和枚举中,那么它根本就没有意义。枚举是宏,它们并不真正存储任何信息,它们只是为数字创建名称,我相信在编译时会替换它们。你可能最好只记住你头脑中的某些名字或使用#define。