Mailinglist Archive: opensuse-programming-de (184 mails)

< Previous Next >
Re: Gleitkomma-Ausnahme
  • From: Michael Matz <matz@xxxxxxx>
  • Date: Thu, 2 Oct 2003 15:14:13 +0200 (CEST)
  • Message-id: <Pine.LNX.4.44.0310021509440.20328-100000@xxxxxxxxxxxxx>
Hi,

On Thu, 2 Oct 2003, Albert Scholl wrote:

> > Ja, aber das sollte doch gar nicht mehr ausgewertet werden, da ich
> > vorher auf a>0 abfrage...
>
> > Das ist exakt der Punkt, den ich nicht verstehe!
>
> Wieso sollte der Ausdruck unbedingt von links nach rechts abgearbeitet
> werden?

Weil && einen Sequenzpunkt erzeugt. Damit ist
if (cond1 && cond2) { ... }
aequivalent zu
if (cond1) {
if (cond2) { ... }
}

Ohne ein kongretes Beispiel kann man jetzt leider nicht sagen, ob das nun
ein Compilerproblem war, oder nicht. Zur Vermeidung von Division durch 0
reicht eigentlich "if (a > 0 && b/a < 2)" voellig aus.

> Es gab in einer Newsgroup in der ich mitlese vor ein paar Monaten mal
> eine Diskussion zu dem Thema - die Reihenfolge kann völlig verschieden
> sein und ist glaube ich vom Compiler abhängig.

Nein, nicht bei &&, || oder ,


Ciao,
Micha.


< Previous Next >
List Navigation
References