У меня есть статический массив struct 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
, который, однако, дублирует индексы перечисления.Есть ли способ сделать это без синхронизации перечисления и массива?