Kurzschlussauswertung in C: Ist sie so garantiert wie in Java?
In Java stellt der Kurzschlussauswertungsmechanismus sicher, dass Ausdrücke werden nacheinander von links nach rechts ausgewertet und stoppen, sobald ein falscher Wert auftritt. Dieses Verhalten ermöglicht die effiziente Nutzung von Bedingungen wie:
if (a != null && a.fun());
Kann C die gleiche Garantie bieten?
In C wird auch die Kurzschlussbewertung verwendet integrierte Datentypen und Operatoren. Die Garantie unterscheidet sich jedoch von Java.
if (a != 0 && a->fun());
Hier wird ein != 0 entweder als wahr oder falsch ausgewertet, und nur wenn es als wahr ausgewertet wird, macht es Spaß () ausgeführt. Dieses garantierte Verhalten gilt nur für integrierte Typen.
Überladung & und || in C
Benutzerdefinierte Typen in C können && und || überladen Betreiber. In diesem Fall ist die Kurzschlussauswertung nicht garantiert. Daher wird generell davon abgeraten, diese Operatoren für benutzerdefinierte Typen zu überladen.
Das obige ist der detaillierte Inhalt vonKurzschlussauswertung in C: Ist sie so zuverlässig wie in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!