M. Ozgan schrieb:
> (data_temp.data_temp_long)<<=1;
data_temp scheint hier ein struct zu sein. data_temp.data_temp_long
bedeutet dann, dass hier auf das Element data_temp_long des structs
data_temp zugegriffen wird. Und der operator <<= ist die
Kurzschreibweise für einen Bitshift mit anschließender Zuweisung.
Wenn man den Operator <<= ausführlich schreibt, dann wird das obige zu
1 | (data_temp.data_temp_long) = (data_temp.data_temp_long) << 1;
|
Und das bedeutet, dass der Inhalt des Elements data_temp_long vom struct
data_temp um eine Stelle nach links "geshiftet" wird.
Nehmen wir an, das data_temp_long ein unsigned char ist und der Inhalt
vor der obigen Operation 0x01 (binär: 0b00000001) war, dann steht jetzt
ein 0x02 (binär: 0b00000010) in dieser Variablen.