如何将一个枚举的元素映射到另一个枚举?

时间:2011-03-14 23:35:58

标签: c enums map

我正在使用C.我需要大型枚举,一个菜单ID和一个窗口ID。目前它们通过数组相互映射,因此元素必须完美地放入数组中,一旦发生变化,就必须将它们全部放回到正确的位置。将菜单映射到窗口的更好方法是什么?感谢

1 个答案:

答案 0 :(得分:0)

您是否明确为每个enum的成员分配值?菜单ID如何映射到窗口ID?您可以发布部分枚举作为示例吗?

如果enums很长,这可能是代码生成脚本的理想选择。将您的ID存储在(例如)CSV文件中,该文件列出了匹配的窗口ID和菜单ID对。然后,编写一个解析CSV文件的脚本,并生成包含相应enum定义的标头。如果使用makefile(或类似文件)构建项目,将这种类型的自动生成的头集成到构建系统中应该相当简单。