Gast
#3167695
Hallo! Eine simple Frage zur C Syntax. Wieso an dieser Stelle eine do-while(0) Schleife??
1 | |
2 | |
3 | |
4 | |
Assembler Optimierung vielleicht??
|
Anzeige
|
Kurze Frage zur AVR C lib
Gast
#3167695
Hallo! Eine simple Frage zur C Syntax. Wieso an dieser Stelle eine do-while(0) Schleife??
Assembler Optimierung vielleicht?? µC schrieb: > Assembler Optimierung vielleicht?? Nein. Die kurze Antwort ist: Damit man das Makro auch an Stellen einsetzen kann, an denen es sonst zu Problemen kommen kann, wenn man den Makroinhalt nicht in einen Block einschliesst. wie zb Variationen von if( ... ) sleep_cpu(); else .... Die einschliessende do-while Schleife verpackt den Makroinhalt so, dass er mehr wie eine Funktion benutzt werden kann, die ihren Inhalt gruppiert. Im gegenständlichen Fall mit lediglich einer einzigen Anweisung wäre das an und für sich noch kein großes Problem, aber sobald mehrere Anweisungen im Spiel sind, wird es zu einem Problem.
Gast
#3167710
Ah verstehe. Karl Heinz Buchegger schrieb: > Im gegenständlichen Fall mit lediglich einer einzigen > Anweisung wäre das an und für sich noch kein großes Problem, Wird dann wohl grundsätzlich auch für Einzeilige statements gemacht. Danke für die Antwort. :) Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|