[linux-l] do{ . } while (0) (was: Arrays in C)
Oliver Bandel
oliver at first.in-berlin.de
Do Nov 24 12:15:22 CET 2005
On Thu, Nov 24, 2005 at 11:38:17AM +0100, Frank Reker wrote:
> 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.
>
Aus Lesbarkeitsgründen setze ich die geschweiften Klammern
immer untereinander, z.B. so:
if( condition )
{
do_something();
}
Ciao,
Oliver
Mehr Informationen über die Mailingliste linux-l