Forum: Mikrocontroller und Digitale Elektronik Was bedeutet -> in C?


von M. G. (ixil96)


Lesenswert?

Hallo,

ich bin gerade auf die Programmzeile

#define PORTA PORT->Group[0]

gestoßen.

Was bedeutet der Pfeil -> zwischen PORT und Group[] ?

von Marius W. (mw1987)


Lesenswert?

Zugriff auf ein struct-Member, wenn du einen Pointer auf eine struct 
hast.

von Prediger (Gast)


Lesenswert?


von Toxic (Gast)


Angehängte Dateien:

Lesenswert?

siehe Anhang

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Lass mich raten: Atmel SAMD & Verwandte?

Sie nennen dort die PIO-Ports zwar über weite Teile PORTA und PORTB,
aber in Wirklichkeit hat der Peripheriemodul PORT nur eine einzige
Instanz, und die beiden Port-Bereiche sind darin als ein Array namens
Group bezeichnet.

Um jetzt PORTA9 zu setzen, müsstest du in der ausführlichen Version
schreiben:
1
PORT->Group[0].OUTSET.bit.OUTSET = (1 << 9);

Mit obigem Makro kannst du stattdessen schreiben:
1
PORTA.OUTSET.bit.OUTSET = (1 << 9);

Die technische Erklärung für den Operator -> wurde dir ja schon
ausführlich erläutert.

von Moritz (Gast)


Lesenswert?

Das gleiche wie (*MyStruct).StructElement

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
Noch kein Account? Hier anmelden.