0

如果有这样的枚举:

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根本没有捆绑在一起,但我认为如果我错过了一些东西,问它不会有什么坏处。

4

2 回答 2

5

不。

您将不得不为枚举和数组编写代码,或者使用一些技术来自动生成代码以减少维护负担。

您可能会对这篇文章感兴趣:新的 C:X 宏

于 2012-07-04T23:18:34.663 回答
-2

我会完全取消枚举。如果您必须将它存储在数组和枚举中,那么它真的没有任何意义。枚举是宏,它们并不真正存储任何信息,它们只是为数字创建名称,我相信这些名称在编译时会被替换。您最好记住在脑海中为某些名称使用哪些数字或使用#define。

于 2012-07-04T23:56:45.583 回答