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.
z.B: x = (a*b)+(c*d);
Was wird zuerst ausgerechnet ? (a*b) oder (c*d) ?
Das ist Compilerabhängig ! AFAIK rollen die Compiler die Sache meistens von hinten auf, also (c*d).
Daß es Unterschiede beim gcc und g++ gibt ist ein bißchen blöd, wer aber guten, portablen C/C++-Code schreibt, dem kann das auch egal sein.
Bye, Stephan