So you want Vec to refer to struct Vec but only if there is no other type Vec defined before or until one is defined later? That would work, but might be a bit confusing.
struct S { ... };
typedef int S;
That's not valid in C++ (so would be a breaking change in C, if it were to adopt this).I don't really think changing this in C would break all that much code, but it's definitely not backwards compatible.