Gast
#1132330
Hallo, ich sehe in Beispielen häufig folgende C-Konstruktion :
1 | |
2 | |
Ist dies nicht dasselbe wie :
1 | |
2 | |
Oder wozu dient das ?
|
Anzeige
|
do while Frage
Gast
#1132330
Hallo, ich sehe in Beispielen häufig folgende C-Konstruktion :
Ist dies nicht dasselbe wie :
Oder wozu dient das ? Es handelt sich um einen rein syntaktischen Trick, bei dem der Inhalt des Makros sich exakt so benimmt wie ein einzelner Funktionsaufruf. Insbesondere funktionieren damit solche Dinge wie:
Gast
#1132357
Ist mir auch schon aufgefallen, aber zur Frage: Warum immer noch ein do() oder while() dazu, warum nicht einfach nur geschweifte Klammern? Es gibt syntaktische Kontexte, bei denen die geschweiften Klammern wohl nicht den passenden Effekt haben. Genaues fällt mir gerade nicht ein, müsste ich wühlen danach. Beispiel:
if (...) Macro(); else
Syntax Error:
if (...) {...}; else
Korrekt:
if (...) do{...}while(0); else
Sonst müsstest du schreiben
if (...) Macro() else
und das sieht doch etwas komisch aus.
Gast
#1132525
Aha ! und Danke :) Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|