Hallo,
ich habe eine vermutlich simple Frage zur C Programmierung allgemein:

Darf (bzw. könnte) ein Compiler den folgenden Code optimieren.

Code:
    LPC_I2C0DAT = EE_SLAVE_ADDRESS | ((EE_Address >> 8) << 1);
Ich schiebe einen Wert 8 mal nach rechts und dann einmal wieder nach links.

Könnte es passieren, daß der Compiler daraus ein >>7 wegoptimiert.
Oder ist es durch die Klammerung ausgeschlossen, daß hier optimiert wird ?
Ich könnte ja auch ((EE_Address >> 7) & 0xFE); benutzen um dies sicherzustellen. Es geht also nur generell um das Prinzip. Optimierung durch die Klammerung ausgeschlossen oder nicht.

Sinn und Zweck ist, daß das LSB Bit 0 gelöscht sein soll.
und meine Adresse in Bit 1..7 stehen soll.

Für eine Info wäre ich dankbar.
mfg. Siro