[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