Le "polymorphisme" est possible en C :
struct truc1
{
int bla
char blo;
} var1;
struct truc2
{
int bla;
char blo;
short blu;
} var2;
void func()
{
struct truc1 *test;
test = (struct truc1) var2;
test->blo = 42;
printf("var2 blo = %d\n", var2.blo);
}
est parfaitement valide. C'est pas mal utilisé, nottament dans la pile TCP/UDP/IP