Erstmal Danke für die Antworten!
Verstehe ich das so richtig (?) :
|
C-/C++-Quelltext
|
1
2
3
4
|
float fWert = 1.0f;
DWORD dwWert = 0; // Nur mal so für die Beschreibung...
dwWert = *((DWORD*)(&fWert)))
|
Wir wollen fWert nach dwWert zuweisen, was nicht so ohne weiteres möglich ist.
In diese Zuweisung geben wir eine Referenz (nur eine Adresse, Zeiger) auf den zuzuweisenden Wert im Speicher.
Mittels (DWORD*) wird dieser Float-Zeiger in einen DWORD-Zeiger gecastet.
(Ist Zeiger nicht gleich Zeiger? *grübel*)
Mit dem Stern vor den Klammern wird der Zeiger derenferenziert (heist das nun so?), also der Wert von der Speicherstelle geholt und an dwWert zugewiesen.
(Bei weiterem Überlegen fällt mir ein, dass Zeiger nicht gleich Zeiger ist, da die "Länge" der Daten ab der Speicherstelle unterschiedlich sein kann.)
Interessant in dem Zusammenhang (ich weiß, für die Kenner ein alter Hut
):
http://www.datasource.de/programmierung/…datentypen.html
Gruß,
Sleepwalker