Forum: Mikrocontroller und Digitale Elektronik Grundsätzliches zu C prog.


von Manuel (Gast)


Lesenswert?

Was macht dieser Befehl:

temp=DectoHex(t->seconds);

wobei DectoHex eine Funktuion ist die Dezimalwerte in Hexwerte wandelt.
Der Variablen temp wird also ein umgerechneter Wert zugewießen. Aber was
macht "t->seconds"

von Rufus T. Firefly (Gast)


Lesenswert?

t ist ein Pointer auf eine Struktur, seconds ist ein Element dieser
Struktur. t->seconds dereferenziert den Pointer und liefert den Wert
des Strukturelements seconds. Alternative Schreibweise: (*t).seconds

déja-vu oder wurde fast exakt dasselbe Thema hier kürzlich schonmal
besprichen?

von bernd (Gast)


Lesenswert?

t ist ein Pointer, der auf eine Datenstruktur zeigt. seconds ist ein
Feld dieser Struktur.
Also wird das Feld seconds der Struktur t in eine Hexzahl verwandelt.

von Florian (Gast)


Lesenswert?

"t->seconds" ist die Variable, die übergeben wird. Das dürfte in einer
Struktur verpackt sein.
Als Beispiel:

struct Var_s
{ char name;
  long a;
};
struct Var_s neu;

Wenn du nun einen Zeiger auf "struct Var_s" definierst

struct Var_s *var = &neu;

kannst du den wert "a" folgendermaßen ansprechen:

var->a = 3;

bzw. wenn du damit eine Funtion aufrufst eben

wert=Funktion(var->a);


Hoffe, ich habe mich nicht verrannt und halbwegs verständlich
ausgedrückt.

LG Flo

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.