Morgen!
Ich habe hier eine ziemliche Kopfnuss...
Ich habe einen vorgefertigten Quellcode, der verschiedene Module
beinhaltet. Diese Module kann man je nach Bedarf zuschalten.
Nun will ich Modul A und Modul B in meinem Programm zuschalten. Dabei
wird zuerst A abgearbeitet und abgeschlossen, bevor das Selbe mit B
passiert.
Mein Problem nun:
Beide Module definieren per typedef ein neues Synonym mit identischem
Namen, allerdings abgeleitet von unterschiedlichen Datentypen.
Das sieht im Code so aus:
1 | // Allgemeiner header: uip.h
|
2 | struct uip_udp_conn
|
3 | {
|
4 | //... einige Variablendeklarationen
|
5 | uip_udp_appstate_t appstate; // die 'kritische' Deklaration
|
6 | };
|
7 |
|
8 |
|
9 | // Modul A: Ein DHCP-Client dhcp.h
|
10 | typedef struct dhcpc_state uip_udp_appstate_t;
|
11 |
|
12 |
|
13 | // Modul B: Ein DNS-resolver resolv.h
|
14 | typedef int uip_udp_appstate_t;
|
Da jedoch die Module A und B hintereinander abgearbeitet werden, wäre
es doch sicher irgendwie möglich, dass uip_udp_appstate_t zuerst ein
Synonym von 'struct dhcpc_state' und anschließend von 'int' ist.
Nur wie kann man soetwas am geschicktesten umsetzen ohne massiv in den
bestehenden Quelltext einzugreifen?
Der Code ist umfangreich, große Änderungen sollten vermieden werden. Am
besten Auslagern auf zusätzliche Funktionen. Aber irgendwie find ich
keinen richtigen Ansatz :(
So, jetzt seid Ihr gefragt!
Vielen Dank im Vorraus!