Hi,
{ case 'eRT_INT': printf("input: %d\n", (int)ptr); break; case 'eRT_LONG': printf("input: %ld\n",(long)ptr); break; case 'eRT_CHAR': printf("input: %c\n", (char)ptr); break; case 'eRT_STR': printf("input: %s\n", (char*)ptr); break; case 'eRT_INVALID': printf("Error\n"); break; }
Der Inhalt des void-Pointer ist entweder ein Wert oder die Adresse des Zeichenvektors. Das Beispiel ist ungetestet.
Da gefiel mir das mit der Union besser, da sind wenigstens keine Typecasts notwendig und Fallunterscheidung muß auch gemacht werden. Und wenn die Rückgabe der struct mißfällt, kann ja auch ein Pointer auf eine struct zurückgegeben werden.
Heiko