Georg-Johann Lay <a...@gjlay.de> wrote: >> Could anyone explain this to me? Is there any way around this >> (still using macros)?
> With macros? No way here. Well: no way *at the preprocessor level*. However, moving the comparison to the *compiler level* could work. The values of e.g. DDRD and DDRB are expressions that can be compared by the compiler. As the resulting comparison is constant at compile-time, with optimization enabled, those code portions that can never be reached (due to the compile-time constant comparisons) are optimized away. So, turn your #if LED1_DDR == LED2_DDR into if (LED1_DDR == LED2_DDR) { // ... } else { // both DDRs are not the same // ... } -- cheers, J"org .-.-. --... ...-- -.. . DL8DTL http://www.sax.de/~joerg/ NIC: JW11-RIPE Never trust an operating system you don't have sources for. ;-) _______________________________________________ AVR-GCC-list mailing list AVR-GCC-list@nongnu.org https://lists.nongnu.org/mailman/listinfo/avr-gcc-list