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

Steffen Dettmer steffen at dett.de
Fr Nov 25 16:18:27 CET 2005


* Oliver Bandel wrote on Thu, Nov 24, 2005 at 12:15 +0100:
> Aus Lesbarkeitsgründen setze ich die geschweiften Klammern
> immer untereinander, z.B. so:
> 
>   if( condition )
>   {
>     do_something();
>   }

Auf Arbeit sind die Klammern in den Entwicklerrichtlinien bedingungslos
gefordert. Wichtig ist hier auch:

if (c) if (c2) a else b

ist nämlich einfach mal falsch weil undefiniert (zu welchem if das else
gehört). Klar, hier schreibt man eh "&&".

Auch eine Falle aus der Praxis:

if (c)
#if defined(C)
  a;
#elif defined(C2)
  b;
#else
  c; /* kann ja später hinzukommen! */
  d; 
#endif
    
"d" wird immer gemacht, wenn nicht C und nicht C2, wollte der Autor aber
vermutlich nicht.

Klammern kosten auch nix, sieht ja nur der Compiler.
 
oki,

Steffen

-- 
Dieses Schreiben wurde maschinell erstellt,
es trägt daher weder Unterschrift noch Siegel.



Mehr Informationen über die Mailingliste linux-l