6
Hat dieser Code wohldefiniertes Verhalten, wenn foo == 13
falsch ist?Variable Änderung innerhalb einer unbrauchbaren Bedingung
if (foo == 13 && ++bar > 42)
{
...
}
Hat dieser Code wohldefiniertes Verhalten, wenn foo == 13
falsch ist?Variable Änderung innerhalb einer unbrauchbaren Bedingung
if (foo == 13 && ++bar > 42)
{
...
}
Ja. Wenn die erste Bedingung falsch ist, wird die zweite Bedingung niemals ausgewertet.
Siehe Avoiding the execution of second expression's side effects.
Ja: google für "Kurzschluss Auswertung" – wildplasser
Es ist gut definiert, aber wenn Leute fragen müssen, wie es funktioniert, ist es nicht sehr * gute * Code. Ich würde es vermeiden, dies zu benutzen. –