Generic Code in C



  • Hi

    Ich habe eine Frage zu generischem Code in C. Soweit ich weiss ist es moeglich generische Datenstrukturen in C zu implementieren.

    Ich habe bereits im Internet mit Google gesucht aber sobald man nach etwas wie "C generic code" sucht kommen Templates, Generics usw. aus anderen Sprachen.

    Hier also meine konkreten Fragen:
    1. Kann man in C generischen Code schreiben?
    2. Ist es sinnvoll generischen Code in C schreiben zu wollen?
    3. Falls "Ja" in 1 und 2, gibt es ein gutes Tutorial wie man in C generischen Code schreibt?



  • Was genau meinst du mit generisch? Ich lasse mich ja gerne belehren, aber ich glaube bis auf void* gibt es da nichts.



  • cooky451 schrieb:

    Was genau meinst du mit generisch? Ich lasse mich ja gerne belehren, aber ich glaube bis auf void* gibt es da nichts.

    Der Ausdruck "generisch" war vielleicht nicht so gut. Im Prinzip meine ich Datenstrukturen, die ich fuer verschiedene Datentypen verwenden kann.
    Z.B., dass ich einen Heap fuer int, double, char usw. verwenden kann.

    In C++ setzt man dies ja ueber Templates, in Java und C# ueber Generics um.

    Deshalb wollte ich wissen, ob man auf sinnvolle Weise ueber void* solche Dinge nachbauen kann und wenn ja, wie man das am elegantesten macht.



  • Guck dir mal die qsort() Funktion an, da wird jedenfalls void* genutzt, damit du wirklich alles sortieren kannst.

    Einen Stack/Heap Typunabhängig zu implementieren hört sich interessant an. Es geht mit void* bestimmt, die Frage ist nur ob und wie man hinterher wieder Typen drüberkleben kann.



  • Stimmt, qsort hat als erstes Argument void*.

    Ich habe mich gefragt, ob das moeglich ist, da es wahnsinnig waere, wenn man komplizierte Datenstrutkturen oder Algorithmen fuer jeden Datentyp spezifisch implementieren muesste.

    Ich habe bis jetzt keinen besseren Loesungsansatz als fuer die Datenstruktur einfach void* zu verwenden und die Verantwortung fuers zurueck-casten beim Client zu lassen.



  • Die Frage ist so witzlos wie: Kann man generischen Code in Assembler schreiben?



  • knivil schrieb:

    Die Frage ist so witzlos wie: Kann man generischen Code in Assembler schreiben?

    Wieso?


Anmelden zum Antworten