Forum: Compiler & IDEs -> Zeichen im Code


von Gudrun (Gast)


Lesenswert?

Hallo,

Habe im Sourcecode der DCF77 Uhr von Ullrich Radig
diese Zeile gefunden.
Was macht dieses -> Zeichen denn nun?

mm = rx_buffer->Min-((rx_buffer->Min/16)*6);

Gruß
Gudrun

von xy (Gast)


Lesenswert?

mm = rx_buffer->Min-((rx_buffer->Min/16)*6);

ist äquivalent zu:

mm = (*rx_buffer).Min -(((*rx_buffer).Min/16)*6);

gruß

von Ansgar K. (paulderbademeister)


Lesenswert?

Es dient dazu ein Unterelement aus einem Struct auszuwählen, auf das du 
einen Pointer hast. Äquivalent dazu wäre (*rx_buffer).Min .

Da Stucts häufig nur über call by pointer übergeben werden, ist diese 
Schreibweise einfach angenehmer.

von Oliver (Gast)


Lesenswert?

rx_buffer->Min

ist eine andere Schreibweise für

(*rx_buffer).Min

Wenn dir das auch nichts sagt, steht dazu was in jedem C-Buch, Kapitel 
"Strukturen und Pointer".

Oliver

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Literaturhinweis:

Brian Kernighan & Dennis Ritchie, "Programmieren in C", zweite Auflage, 
Hanser-Verlag.

von Oliver (Gast)


Lesenswert?


von Gudrun (Gast)


Lesenswert?

Das ging ja schnell.
Vielen Dank.
Damit ist ja meine Frage beantwortet.

(*rx_buffer).Min

Verstehe ich so,
es ist ein Zeiger auf das Structurmitglied Min.
Bin ich da richtig?

Gudrun

von Oliver (Gast)


Lesenswert?

Gudrun schrieb:
> Verstehe ich so,
> es ist ein Zeiger auf das Structurmitglied Min.
> Bin ich da richtig?

So formuliert ist das falsch.

http://lmgtfy.com/?q=c+operator+%22-%3E%22

Die Grunslagen von C musst du dir schon selber erlesen. Das wird dir 
hier niemand vorkauen.

Oliver

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.