【发布时间】:2012-02-23 09:29:30
【问题描述】:
我有一个结构体MyStruct 的静态数组。我需要按索引访问数组,但我还需要每个 MyStruct 知道它的索引是什么。我目前使用以下代码:
enum { INDEX_FOO=0, INDEX_BAR, INDEX_BAZ };
struct MyStruct{ int index; const char* name; /* other data */ };
struct MyStruct values[]={
{ INDEX_FOO, "foo" /* ... */ },
{ INDEX_BAR, "bar" /* ... */ },
{ INDEX_BAZ, "baz" /* ... */ },
};
// requirement: for all i in {0,1,2}: values[i].index==i
但是它会重复枚举索引。有没有办法做到这一点而不必保持枚举和数组同步?
【问题讨论】: