ok so I've come to the point where I would like to pass a pointer to a struct to a function, however the function's prototype is written before the struct. I realize I could rearrange the code, but by passing a pointer to the struct as a void*, and inside the function casting the pointer to a pointer of the original struct type, I can solve this very easily.

but my question is, is when I write a typedef struct like so:

Code:
typedef struct tagname {
   /* members here */
} varlist;
which is the actual new type? is it "tagname" or "varlist"?

for some reason I think it would make sense if it was the tag name, but I'm unsure of that. if it is the tag name, that means that variable list is still valid (it is not also a list of types), right?

any help is appreciated. thank you in advance.