Hallo Leute, ich programmiere gerade einen mega32 mit pn2 und avrgcc3.3. Ich benötige eine Struktur auf die alle Funktionen zugreifen können. Dazu habe ich im main-Header eine Struktur deklariert und eine Strukturvariable durch .. extern xy; erzeugt. leider haben meine Funktionen keinen Zugriff auf die Variable obwohl ich allen den main-Header zur Verfügung gestellt habe. Der compiler meckert undifined reference to xy Wer kann da weiterhelfen? M.G:
extern struct axz xy; erzeugt nicht, sonder deklariert nur dass xy den typ struct xyz hat. Du musst die variable natürlic noch irgendwo in einen c-file erzeugen, eben ohne den "extern" struct xyz xy;
Wenn es sich dabei um eine art Semaphore handelt, solltest Du diese globale Struktur noch 'volatile' deklarieren und definieren.
@O Das soll im Prinzip ein globaler Datenpuffer sein, von dem ich problemlos mit allen Funktionen lesen(!) kann.
Aber jetzt fällt mir gerade auf, dass ich noch ein zwei solcher Felder gebrauchen könnte und da werden sich dann die Inhalte ändern. @O Sollte ich dann irgendetwas beachten?
Volatile bedeutet nur, dass der Optimizer an der Variable keine Optimierung vornimmt. Bietet sich also für Register an, die nicht nur durch den Quellcode direkt verändert werden.
Jetzt hab ich mir selbst ins Knie geschossen! Ihr habt natürlich beide Recht...
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.