Poniter an Modul????
-
Hallo habe eine kleine Frage.Ich soll ein Modul für eine SCI Kommunikation schreiben.Als erstes wird von einer oberen schicht die Initialisierung aufgerufen. Die abarbeitung innerhalb der Funktion, funktioniert so wie ich sie schreiben soll.
void SCI_ InitFunc(SCI_Config *ConfigPtr) { //hier wird die Konfiguration durchgeführt }
Jetzt soll ich meine Main funktion schreiben.Der aufruf sieht bei mir so aus:
void SCI_ Main(SCI_Config *ConfigPtr,SCI_Data *DataPtr) { //hier werden einige Umwandlungen und die Datenverarbeitung später durchgeführt
So jetzt meinte mein Chef den Pointer :SCI_Config *ConfigPtr müsste ich nicht noch mal übergeben dies wäre ja schon in der Init Funktion passiert.
Wie soll ich das verstehen???? Wie kann ich auch in der Main mit den Daten arbeiten obwohl ich den Pointer da nicht mit übergebe????????
-
Nicht genug Informationen. Man müsste jetzt wissen wie die Init Funktion aussieht.
-
Er meint wohl, du sollst eine globale bzw. statische Variable in das Modul einführen und dort die Konfigurationsdaten festhalten, so dass du sie nicht jedesmal übergeben musst.
static SCI_Config *s_ConfigPtr; void SCI_InitFunc(SCI_Config *ConfigPtr) { s_ConfigPtr = ConfigPtr; } void SCI_Main(SCI_Data *DataPtr) { /* greife auf s_ConfigPtr zu, wenn du Config-Informationen haben willst */ ... }
ob das guter Stil ist oder nicht lass ich mal dahingestellt, da kann man sich durchaus drüber streiten, der Trend geht eher dazu, es so zu machen, wie du es vorher hattest. Das musst du mit deinem Chef diskutieren.
-
Alles klar besten Dank. Ich glaube so meinte er das.Ich kannte es bisher nur so wie ich es beschrieben hab.