I am possibly doing this incorrectly and this is much a question about why it works in one compiler and not the other.
I have a large C application, and I am
Just as a matter of style I would put the typedef after the struct. i.e.:
struct B_ { int c; }; typedef struct B_ B;
That way you are saying: "here is B_ and now I want to refer to it as B". It could be that the other way around fools something in the compiler.