[linux-l] do{ . } while (0) (was: Arrays in C)

Frank Reker frank at reker.net
Do Nov 24 11:38:17 CET 2005


Am Wed 23. Nov 2005 20:55 +0000 schrieb Axel Weiß:

>ist das so schwer zu verstehen? Ich mach mal ein Beispiel:
>#define MAKRO1(x)    {anw1(x); anw2();}
[...]
>if (cond1) MAKRO1(k);
>else {...}
>
>expandiert nämlich zu
>
>if (cond1) {anw1(k); anw2();};
>else {...}
>
>und bei else kommt syntax error.

naja, normalerweise sind semikolons hinter {} bloecken erlaubt!
aber du hast recht, vor einem else nicht - warum auch immer. ist
mir noch nie aufgefallen, da ich, wenn ich ein else zweig habe
der lesbarkeit zu liebe den then zweig immer in {} setze, auch
wenn es sich nur um eine anweisung handelt. in etwa so:
if (cond1) {
    MAKRO1(k);
} else {
    ....
}
dann funktioniert's.


-- 
Don't worry be happy ...
Ciao Frank
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : nicht verfügbar
Dateityp    : application/pgp-signature
Dateigröße  : 189 bytes
Beschreibung: nicht verfügbar
URL         : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20051124/1e904a1f/attachment.sig>


Mehr Informationen über die Mailingliste linux-l