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
Lesezeichen