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.
Gerade Operatorer wie && und || werden ja nur solang ausgewertet, bis der Wert es Ausdrucks feststeht.
Uli