Nimm lieber sowas:
input: 32-Bit EingabewertCode:output = (input >> (byte * 8)) & 0xFF;
output: 8-Bit Ausgabewert
byte: Index des Bytes (0 .. 3)
Am besten Funktioniert das ganze wenn "byte" eine Konstante ist, dann pickt sich der GCC einfach das passende Byte aus dem (u)int32_t raus.
mfG
Markus
PS: Type-Punning mit Unions sollte man vermeiden
Lesezeichen