-----Original Message----- From: Ulrich Küttler [SMTP:ulrich.kuettler@mailbox.tu-dresden.de] Sent: Dienstag, 11. Januar 2000 22:00 To: lug-dd@schlittermann.de Subject: Re: [Lug-dd] GCC Abkuerzungen
Stephan Goetter wrote:
Am Fre, 07 Jan 2000 schrieb Ulrich Küttler:
Meinst Du, daß bei ( x||y ) erst y und dann x ausgewertet wird? Wäre
das
nicht gegen alle Regeln? (Ich denke schon.)
Welche Regeln ? Es gibt nur Standards und keine Regeln. Und im C-Standard steht nicht drin was zuerst ausgewertet werden soll. Warum auch, es spielt ja (normalerweise) keine Rolle. Beim ANSI-C++-Standard bin ich mir da nicht so sicher.
In welcher Reihenfolge z.B. Ausdrücke ausgewertet werden ist auch nicht
festgelegt, warum auch,
ist ja schließlich egal.
Nicht ganz! Bei C++ ist es festgelegt. Und manchmal spielt es auch eine Rolle. (Wegen der Seiteneffekte.) Nicht festgelegt ist (IMHO) nur die Reihenfolge, in der die Argumente beim Funktionsaufruf ausgewertet werden.
Denke ich auch, denn es ist durchaus ueblich einen Pointer zu checken, ehe man ihn nutzt ...
if (x && x->hasToDoAnything) { Anything ... }
Waere 'ne echte Hiobsbotschaft, wenn das nicht sicher waere!
Gerade Operatorer wie && und || werden ja nur solang ausgewertet, bis der Wert es Ausdrucks feststeht.
Uli
http://rcswww.urz.tu-dresden.de/~uk327083/
Lug-dd maillist - Lug-dd@schlittermann.de http://mailman.schlittermann.de/mailman/listinfo/lug-dd