Hallo,
habe folgenden Code:
1 | //AVR/GNU C Compiler : 3.4.2
|
2 | #include <avr/io.h>
|
3 | int main(void)
|
4 | {
|
5 | uint8_t var1, var2, var3;
|
6 | while(1)
|
7 | {
|
8 | var1=0xFF;
|
9 | var2=0;
|
10 | var3=0;
|
11 | do{
|
12 | var3++;
|
13 | }
|
14 | while(var2==var1+1);
|
15 | return 0;
|
16 | }
|
17 | }
|
bei der Simulation wird aus der while heraus geprungen. Mir ist nicht
ganz klar warum. Die Addition hat eine größere Bindung als der Vergleich
trozdem wird 0 == 0xFF verglichen und nicht 0 == 0 verglichen. Wenn die
Variablen int8_t sind funktioniert die Abfrage (var2 == -1+1)
Endlosschleife was einleuchtet.
Was nicht einleuchtet warum 0xFF +1 nicht funktioniert var1 müsste doch
auf 0 überlaufen. Irgendjemane nen tipp?