Hallo,
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?
Die sauberste Lösung in C sollte die Definition eines passenden Datentyps sein. Bedeutet allerdings recht viel Ballast.
#DEFINE T_INT 1 #DEFINE T_FLOAT 2 #DEFINE ...
typedef struct { int type; union { int a, float b, char* c, ....} data; } my_nice_struct;
Rückgabewert der Funktion ist dann Pointer auf einen obigen struct.
Zugriff ala
my_nice_struct x; ... switch (x.type) { case T_INT: do_something(x.data.a); break; case T_FLOAT: do_anything(x.data.b); ...
mfg, Fabian