[linux-l] do{ . } while (0) (was: Arrays in C)
Jan-Benedict Glaw
jbglaw at lug-owl.de
Sa Nov 26 10:54:30 CET 2005
On Fri, 2005-11-25 23:02:34 +0100, Steffen Dettmer <steffen at dett.de> wrote:
> * Jan-Benedict Glaw wrote on Fri, Nov 25, 2005 at 19:24 +0100:
> > 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.
>
> Das ist "C99", ja? Ist das hier neu?
Ja.
Nein. Auch ANSI-C90 enthält das schon. Aus dem Roman von
Kernighan/Ritchie, "Programmieren in C", 3-446-15497-3 bzw.
0-13-110330-X:
------------------------------------------------------------------------
3 Kontrollstrukturen
3.2 /if/-/else/
[...]
Da der *else*-Teil einer *if*-*else*-Anweisung optional ist, entsteht
eine Mehrdeutigkeit, wenn ein *else*-Teil in einer verschachtelten
Folge von *if*-Anweisungen fehlt. Dem wird dadurch begegnet, daß der
*else*-Teil immer mit dem letzten *if* verbunden wird, für das noch
kein *else*-Teil existiert
[...]
------------------------------------------------------------------------
Mein Vorgänger-Buch (C89) hab' ich leider ad hoc nicht gefunden, aber
ich bin mir doch recht sicher, daß ein *else* schon immer zum letzten
*if* gehört hat.
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/20051126/e9cb6f90/attachment.sig>
Mehr Informationen über die Mailingliste linux-l