Hallöchen, ist die Reihenfolge in einer if-Anweisung "von links nach rechts" festgelegt? D.H., kann ich davon ausgehen, daß beispielsweise if( init_xy()==FEHLER || benutze_xy()==FEHLER ) dumm_gelaufen(); immer erst init_xy() und erst danach benutze_xy() ausgeführt wird? Danke, Frank
Gast
#520232
Ja, die Auswertung des Operators || erfolgt von links nach rechts, das ist festgelegt. Wenn allerdings schon die erste Bedingung erfüllt ist, wird die zweite bei den meisten Compilern gar nicht mehr geprüft.
Gast
#520233
Frage (und Antwort) 4.5 http://www.dclc-faq.de//kap4.htm
Hallo Frank, das sollte helfen: http://www.difranco.net/cop2220/op-prec.htm Gruss, rweber
Vielen Dank! Der vorzeitige Abbruch bei erster erfüllter Bedingung schadet im konkreten Fall nicht.
Christian wrote: > Ja, die Auswertung des Operators || erfolgt von links nach rechts, das > ist festgelegt. Wenn allerdings schon die erste Bedingung erfüllt ist, > wird die zweite bei den meisten Compilern gar nicht mehr geprüft. Um genau zu sein: Darf nicht mehr ausgewertet werden. Diese sog. 'shortcut evaluation' wird vom C-Standard gefordert. Es liegt also nicht im Ermessen des Compilerbauers ob er sie macht oder nicht. Ist das ganze ein C Compiler, dann muss er sie machen.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.