>>819
いや、void *型に宣言した変数にいくつかの種類の構造型へのポインタを入れて、
それを関数に渡してやるんだろ?
つまり、
struct foo {
int sort;
int x, y, z;
....
};
struct bar {
int sort;
int x, y;
...
}
とかあって、
void * OpenHoge(引数)が引数に応じてstruct foo *を返すかstruct bar *を返すかが決まるとするよ。

void *polymorphic_var;
polymorphic_var = OpenHoge(何か適当は変数);

とすると、polymorphic_varの参照先にはパラメータに応じてstruct fooの値か
あるいはstruct barの値が入ってるわけでしょ。
これって、十分にポリモーフィズムだよ。
さらに、
HogeHage(polymorphic_var, ...);
とかすれば、この関数への第一引数がstruct foo *の場合もあるし struct bar *の場合もある。
これもやはりpolymorphismになる。

ここで、このpolymorphismを何polymorphismと呼ぶべきかだけど、
変数polymorphic_varの参照先が先頭のint sort;の内容で型を判定するとすると、
これは一種のstructural type equivalenceによるinclusion polymorphismと捉えることができる。
だから、「>>810のCでの例はinclusion polymorphismの一種だね。 」と言ったわけ。