Us grey beards call that a union :-)
Call what a union? I don't see any way a C union could be considered polymorphic. It is basically just a convenience for casting.
Or do you mean that a union is as far as you can bring C's type system?
Not quite. It's implemented as a tagged union, but the power comes from building a full algebra that makes type composition trivial and very easy to reason about (thus the phrase "algebraic data type"). Their history goes back to the 1970's, so they're not much younger than C and they're older than object oriented programming.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.