I don't know how legal and ethical and moral this is, I don't think it is legal at all but would like to be corrected if it is, but I think this is what you are asking. I don't know any other way to 'enumerate' structure members. This assumes that they are all the same type, and that the byte alignment isn't screwing anything up. I don't think I'm allowed to assume this however.
Code:
struct type
{
int a;
int b;
int c;
int d;
int e;
}
t = { 1, 2, 3, 4, 5 };
int main()
{
int * p = (int *) &t;
while((char *) p < (char *) &t + sizeof type)
{
(*p)++;
printf("%d\n", *p);
p++;
}
}