Hi Namenloser,
macianer@online.de macianer@online.de:
ich schreibe an einem kleinem Tool. Dabei habe ich ein Modul implementiert, das die Eingabe von der Tastatur in einem String einliest. Durch strtok() und vorherige Vereinbarung des Delimiters wird der String zerlegt und die Teilstrings bspw. per atoi() in Integer umgewandelt.
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?
Ich würde dem Aufruf einen void-Pointer mitgeben, der das Ergebnis zurückliefert (Zahlenwerte sind der Wert des Pointers und bei Strings ist der Pointer die Anfangsadresse) und der Rückgabewert der Funktion (z.B. ein enum) legt fest, wie der Pointer interpretiert (gecastet) wird.
Freundlich grüßend,
Erik