Ich stehe gerade auf dem Schlauch.
1 | |
Warum wird aus
1 | |
2 | |
3 | |
4 | |
1 | |
2 | |
3 | |
4 | |
Gestalte ich die if-Abfrage so:
1 | |
2 | |
3 | |
4 | |
wird die Abfrage auch durchgeführt:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
|
Anzeige
|
if-Abfrage wird "wegoptimiert"Ich stehe gerade auf dem Schlauch.
Warum wird aus
Gestalte ich die if-Abfrage so:
wird die Abfrage auch durchgeführt:
Was bitteschön willst du denn mit dieser if-Abfrage erreichen?! Schonmal darüber nachgedacht, dass nach der if-Abfrage test immer 0 ist?! Gruß Marius
Gast
#2828559
Wozu sollte sie denn durchgeführt werden? Dein Code hat zwei Auswirkungen: - PIND wird gelesen - test wird auf 0 gesetzt Die Abfrage ist für dieses Ergebnis unnötig und wird daher wegoptimiert. Martin Kreiner schrieb: > if (test>0) test=0; Hat nunmal das selbe Ergebnis wie: test=0; sieht komisch aus...zeig mal den asm code drumherum (so +/- 10 zeilen). welchen compile nutzt du ? (version)
Gast
#2828577
Das sieht nicht komisch aus. Das sieht genau richtig aus. Es gibt zwei Möglichkeiten. Entweder ist test vor der if Abfrage gleich null oder größer null. In beiden Fällen ist es danach 0. Also kann man es auch weg lassen. Der Compiler macht das schon richtig. In dem zweiten Beispiel wird es nicht wegoptimiert weil test auch gleich eins sein kann. Bernd schrieb: > Das sieht nicht komisch aus. Das sieht genau richtig aus. Es gibt zwei > Möglichkeiten. Entweder ist test vor der if Abfrage gleich null oder > größer null. In beiden Fällen ist es danach 0. Also kann man es auch weg > lassen. Der Compiler macht das schon richtig. In dem zweiten Beispiel > wird es nicht wegoptimiert weil test auch gleich eins sein kann. hast ja recht..hab nicht genau hingeschaut ;) Stefan P. schrieb: > Martin Kreiner schrieb: >> if (test>0) test=0; > > Hat nunmal das selbe Ergebnis wie: > test=0; Stimmt, klassisches Brett vor dem Kopf. Sinn und Zweck der Sache war nur: Ich wollte einen Breakpoint setzen und kontrollieren ob der Port richtig toggelt. Der Compiler hat da weiter gedacht und die Sache nicht einfach stumpf übersetzt. Danke.
Gast
#2829047
Für Breakpoints eignet sich _nop() oder ähnlich sehr gut. Der schrieb: > Für Breakpoints eignet sich _nop() oder ähnlich sehr gut. Schon richtig. Hier wollte ich aber ein "break on change". Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|