Mailinglist Archive: opensuse-programming-de (184 mails)
| < Previous | Next > |
Re: Gleitkomma-Ausnahme
- From: Albert Scholl <mailinglisten@xxxxxxxxxxx>
- Date: Thu, 2 Oct 2003 10:43:54 +0200
- Message-id: <13211406912.20031002104354@xxxxxxxxxxx>
Hallo.
am Donnerstag, 2. Oktober 2003 um 10:22 kam u.a. folgendes:
> * Am Don, 02 Okt 2003 schrieb Ulrich Walter:
>> Am Donnerstag, 2. Oktober 2003 09:12 schrieb Christoph Maurer:
>>
>> >
>> > if ( a > 0 && b/a < 2 && b%a != 0) ...
>> ^^^
>> Hier steht dann 0/0, und das ist zumindest in der Mathematik
>> ein unbestimmter Ausdruck...
>>
> 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?
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.
Richtig wäre:
if ( a > 0 ) {
if ( b/a < 2 && b%a != 0) {
...
}
}
Gruß,
Albert
am Donnerstag, 2. Oktober 2003 um 10:22 kam u.a. folgendes:
> * Am Don, 02 Okt 2003 schrieb Ulrich Walter:
>> Am Donnerstag, 2. Oktober 2003 09:12 schrieb Christoph Maurer:
>>
>> >
>> > if ( a > 0 && b/a < 2 && b%a != 0) ...
>> ^^^
>> Hier steht dann 0/0, und das ist zumindest in der Mathematik
>> ein unbestimmter Ausdruck...
>>
> 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?
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.
Richtig wäre:
if ( a > 0 ) {
if ( b/a < 2 && b%a != 0) {
...
}
}
Gruß,
Albert
| < Previous | Next > |