Hallo,
macianer@online.de macianer@online.de (Do 01 Jun 2006 12:09:35 CEST):
Nun soll das aber eine allgemeingültige Funktionalität werden, die sowohl auf Integers, Floats, Strings usw. arbeiten soll. Ich kann aber nur einmal einen Datentyp für den Rückgabewert festlegen kann. Ich habe keine Polymorphie, leider! Ich will aber in ANSI-C bleiben. Wie kann ich das Problem lösen bzw. umgehen?
Du könntest einen eigenen Datentyp (z.B. eine union) nehmen.
#include <stdlib.h> #include <stdio.h>
typedef struct { char type; union { int i; char c; char* s; }; } value;
value reader() { value r;
r.type = 'i'; r.i = 42;
return r; }
int main(int argc, char **argv) { value v = reader();
switch (v.type) { case 'i': printf("i: %d\n", v.i); break; case 'c': printf("i: %c\n", v.c); break; case 's': printf("i: %s\n", v.s); break; }
exit(0); }
Heiko