An Adresse aus Nicht-Pointer-Variable einen Float-Wert auslesen
-
Hallo liebes Forum,
folgendes Problem plagt mich. Ich programmiere in C für eine SPS und bekomme durch eine Betriebssystemfunktion einen 32-Bit unsigned int, dessen Inhalt eine Speicheradresse für einen Wert im physikalischen Speicher ist. An dieser Speicherstelle steht ein float Wert.
Ich möchte jetzt diesen Wert in eine lokale float Variable lesen. Wie stelle ich dies korrekt an?
Vielen Dank schon mal,
gruß,
Makke
-
Man müsste die Zahl einfach in einen Zeiger unwandeln können:
unsigned int address; float *f = (float *)address;
-
TyRoXx schrieb:
Man müsste die Zahl einfach in einen Zeiger unwandeln können:
unsigned int address; float *f = (float *)address;
Das war bloß die Hälfte:
float f = *(float *)address;
Je nachdem, wie deine SPS arbeitet, musst du evtl. noch Endian beachten.
-
Es funktioniert - Floatpointer auf die Adressvariable und dann einfach dereferenzieren. Endian brauche ich nicht zu beachten.
Hatte irgendwie Freitag vorm Wochenende ein Brett vor dem Kopf *patsch*.
Danke!!