dedlfix: Versionsnummer auslesen aus einer Datei von anderem Server

Beitrag lesen

Tach!

[ | und & ]
Hat das aber nicht eher was damit zutun, dass das Bit-Operationen sind?

Ja. Dabei müssen immer beide Operanden mitspielen, und wenn dies Ausdrücke sind, müssen diese zuerst berechnet werden. Wenn diese Berechnungsfunktionen irgendwelche Nebenwirkungen haben, werden diese ausgeführt. Bei den logischen Operatoren kann das Kurzschlussverfahren angewendet werden. Wenn nach dem ersten Ausdruck bereits feststeht, dass der zweite am Ergebnis nichts mehr ändern kann, wird der nicht mehr berechnet. Seine Nebenwirkungen bleiben dann unausgeführt.

x and y (oder x && y): wenn x = 0 ist, kann das Ergebnis nur noch 0 werden, egal was y bringt.
x or y (oder x || y): wenn x = 1 ist, kann das Ergebnis nur noch 1 werden, egal was y bringt.

Wenn man auf die Nebenwirkungen von y angewiesen ist, sollte man jedoch nicht zu den Bitoperatoren greifen, sondern die Ausdrücke erst berechnen, Ergebnis in Variable ablegen und diese dann in der Logikoperation anwenden. Am besten auch noch dokumentieren, dass da Nebenwirkungen benötigt werden, nicht dass man das mal im Code wegoptimiert und dann Fehler suchen muss. Noch besser wäre sicher, den Code so umzubauen, dass man diese Nebenwirkungsabhängigkeit loswird.

dedlfix.