Sometimes
---
struct MyStruct {}
---
is used as a workaround, but that may have other issues.
Yeah, that's no good. That certainly opens up more problems.
The point is that it is an undefined struct, and it can only be used to type a pointer. It's pretty much impossible to extern to a lot of C code if this doesn't work properly.