Container
-
Ich bin gerade dabei mich intensiver mit C zu beschäftigen. Ich habe mir auch schon diverse Container geschrieben, die allesamt einen Haken haben. Sie sind jeweils nur für einen Datentyp geeignet.
Wie ist der "C-Weg" dieses Problem generisch zu lösen? Mein Gedanke ist, die ganzen Funktionen auf void* operieren zu lassen. Als Anwender der Container müsste ich dann allerdings immer casten. Gibt es noch andere Möglichkeiten das zu lösen?
Dazu auch noch eine Frage: Kostet casten in C etwas, oder ist das nur für den Compiler zur Compilezeit interessant?
-
casten kostet manchmal. unsigned int nach signed int ist kostenlos, pointer casten ist kostenlos, aber double nach char kostet (weil eben der wert konvertiert wird).
was hast du eigentlich mit "containern" vor?
-
Da es in C keine Templates gibt, wird es wohl auf eine Implementierung mit void* hinauslaufen.