[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [avr-gcc-list] Check whether two macros are equal to each other
From: |
Joerg Wunsch |
Subject: |
Re: [avr-gcc-list] Check whether two macros are equal to each other |
Date: |
Sun, 3 Jun 2012 21:29:21 +0200 (MET DST) |
Georg-Johann Lay <address@hidden> 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. ;-)