枚举之间可以紧密绑定到它们对应的数组吗
请注意,这些只是伪代码,只是为了理解。
方法1。一种方法是我们创建声明并定义数组。
enum Names
{
ABC,
DEF,
GHI
};
char* names[] = {"abc", "def", "ghl"}; // Declare and define.
为了获得我们将做的价值
char *nm = names[ABC];
这种方法的缺点是我们需要保持枚举和名称数组同步,即如果我们更改枚举,我们会移动某些值,这些值也需要在表中完成
例如:将 DEF 移动到枚举的顶部
enun 名称 { DEF, ABC, GHI };
// 也改变数组。
char* 名称[] = {“def”、“abc”、“ghi”}
方法2。
打破枚举和数组之间绑定的一种方法是使用如下所示的创建函数。
诠释 CreateNamesArray() {
Names[GHI] = "ghl";
Names[DEF] = "def";
Names[GHI] = "ghi";
};
现在,即使枚举发生更改,数组也不会受到影响。这种方法的一个缺点是我们需要在访问表之前调用该函数。
请建议哪种方法更好。这些表将是大约 30-100 个条目。