Dirk B. schrieb:
> Mit *((*float)(Input)) sollte es gehen.
Das ist undefined behaviour (pointer aliasing). Zwar darf ein
char-Pointer alles aliasen, aber nicht alles darf einen char-Pointer
aliasen.
Entweder, man macht type punning mit einer union, falls es in C ist (in
C++: undefined behaviour), oder man macht es sauber mit memcpy, wobei
der Compiler den Funktionsaufruf wegoptimieren wird:
1 | memcpy(Output, Input, 4);
|
Man könnte auch noch nen static assert hinzufügen, ob float wirklich 4
Bytes hat.