Hmm. I'd been fishing with something like this.
Code:
#include <stdio.h>
struct Menu
{
const char *title;
struct Menu const *next;
};
extern const struct Menu A, B, C, D;
const struct Menu *const MenuList[] = { &A, &B, &C, &D };
const struct Menu A = { "A", &D};
const struct Menu B = { "B", &C};
const struct Menu C = { "C", NULL};
const struct Menu D = { "D", &B};
int main(void)
{
const struct Menu *menu = MenuList[0]->next;
while ( menu )
{
puts(menu->title);
menu = menu->next;
}
return 0;
}
/* my output
D
B
C
*/