Hallo,
Was macht der (Pre-) / Compiler mit
" #define BATTERIE (1 << MUX0) | (1 << MUX2) ",
wenn es irgendwo eingesetzt wird?
Meinst Du Präprozessor ? Oder das Endprodukt?
der GCC hat einen schönen Schalter -E , der das Kompilieren abbricht, nachdem der Präprozessor fertig ist, ich habe es ausprobiert:
Code:
 #define BATTERIE (1<<0)|(1<<2)
 usigned char high;
  high = BATTERIE;
ein GCC blabla.c -E | grep high ergibt
Code:
unsigned char high;
  high = (1<<0)|(1<<2);
also reinen Textersatz (war auch klar)
Richtig optimieren tut der Kompiler, ich weiß aber nicht, ob auch bei -O0, da mußt Du selber gucken, dazu habe ich im Moment keine Lust

Gruß Sebastian