Hey,
ich hab ein Problem in C, ich bin mir nicht sicher ob das überhaupt so machbar ist wie ich mir das vorstelle.
Ich habe eine Library die von verschiedenen Geräten importiert wird. In dieser soll ein globaler struct existieren, der allerdings für jedes Gerät/Anwendungsfall unterschiedliche Inhalte haben soll, also auch eine unterschiedliche Anzahl an Einträgen, unterschiedliche Typen usw. Das heißt dieser struct sollte quasi in den device-spezifischen "treibern" erst mit Inhalten/Deklarationen gefüllt werden.
Prinzipiell also eine als extern deklarierte "struct-Variable". Ist so etwas irgendwie möglich? Das Problem derzeit ist dass er natürlich den Typ des structs nicht kennt, da der ja erst in den treibern deklariert wird.
extern structdefinition name; // funktioniert nicht, da structdefinition erst in den Treibern
// vorher:
typedef struct structdefinition name; // funktioniert auch nicht wirklich, da der Compiler dann natürlich wegen redefinition meckert
Ich möchte NICHT:
- die Treiber in die Library inkludieren, wäre ja sinnlos dann
- in der Library unterscheiden welches Gerät sie gerade nutzt (das wäre die Notfall-Variante, aber das muss doch auch anders gehen?!)
edit: Möchte auch nicht jeder Funktion in der Library einen Pointer auf den struct übergeben müssen
Ich hoffe ich habe mich klar ausgedrückt, sonst einfach nachfragen.
Vielen Dank schonmal.
MfG xlemmingx