Hallo Forum, ich habe in meinem Programm einen Linker Error. Ich denke ich habe die zwei Funktionszeiger-Arrays doppelt definiert bin mir aber nicht sicher wo. Vielleicht hat ja einer einen Vorschlag. Gruß Micha
Du definierst die Arrays in der Headerdatei, statt sie dort nur zu deklarieren. Da Du die Headerdatei aber mehrfach einbindest, werden die Arrays für jedes Einbinden erneut erzeugt.
Danke für die schnelle Antwort. Hast Recht, das werde ich gleich mal ausprobieren.
Muss ich in der Header-Datei eigentlich noch ein extern vor das Array stellen? So etwa:
1 | // Funktionstabelle
|
2 | extern state_func_t* const state_table[NUM_STATES]; |
Oder ist das unnötig.
Micha schrieb: > Muss ich in der Header-Datei eigentlich noch ein extern vor das Array > stellen? Ja, sonst ist es keine Deklaration, sondern eine Definition. Datendeklarationen brauchen immer ein “extern”. Funktionsdeklara- tionen brauchen das nicht (sie sind immer anhand des abschließenden Semikolons erkennbar), aber man darf es auch bei diesen davor schreiben.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.