[linux-l] do{ . } while (0) (was: Arrays in C)
Jan-Benedict Glaw
jbglaw at lug-owl.de
Fr Nov 25 19:24:26 CET 2005
On Fri, 2005-11-25 16:18:27 +0100, Steffen Dettmer <steffen at dett.de> wrote:
> 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 "&&".
Erm, wozu das "else" gehört ist ganz klar definiert: zum letzten "if"
davor. Eingerückt ist das:
if (c)
if (c2)
a;
else
b;
ISO/IEC 9899:1999(E), 6.8.4.1.3:
An *else* is associated with the lexically nearest preceding
*if* that is allowed by the syntax.
> 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.
Prima... Das sieht nach 5 mal portiert und immernoch nicht hinbekommen
aus...
MfG, JBG
--
Jan-Benedict Glaw jbglaw at lug-owl.de . +49-172-7608481 _ O _
"Eine Freie Meinung in einem Freien Kopf | Gegen Zensur | Gegen Krieg _ _ O
für einen Freien Staat voll Freier Bürger" | im Internet! | im Irak! O O O
ret = do_actions((curr | FREE_SPEECH) & ~(NEW_COPYRIGHT_LAW | DRM | TCPA));
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : signature.asc
Dateityp : application/pgp-signature
Dateigröße : 189 bytes
Beschreibung: Digital signature
URL : <https://mlists.in-berlin.de/pipermail/linux-l-mlists.in-berlin.de/attachments/20051125/ae4dfc1f/attachment.sig>
Mehr Informationen über die Mailingliste linux-l