🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.os.linux
Article #42

Re: BUG im gcc ??? (strlen)

#42
From: Wolfram Gloger
Date: Tue, 20 Feb 1996 11:45
40 lines
2317 bytes
Anselm Lingnau <lingnau@tm.informatik.uni-frankfurt.de> writes:

>Im Artikel <4gb0ub$h6o@sparcserver.lrz-muenchen.de> schrieb
>Wolfram Gloger <Gloger@lrz.uni-muenchen.de>:

>> Hier muss ich Dich korrigieren :-).  Die '+' und '-' Operatoren
>> assoziieren definitiv von links nach rechts, kein compiler darf da
>> machen was er will (nur die Reihenfolge der Seiteneffekte der
>> Argumente ist undefiniert).

>Sorry, aber nein. Die Assoziativit"at der `+'- und `-'-Operatoren
>(oder der C-Operatoren "uberhaupt) ist ein rein syntaktisches Konstrukt,
>das den C-"Ubersetzer zu nichts verpflichtet. Insbesondere ist es
>dem "Ubersetzer freigestellt, den Ausdruck `a + b + c' als `(a + b) + c'
>oder als `a + (b + c)' zu bewerten, solange das Ergebnis `dasselbe'
>bleibt (Numeriker d"urfen sich jetzt die Haare raufen). Siehe hierzu
>Abschnitt 6.3 des C-Standards (ISO/IEC 9899). Die Auswertungsreihenfolge
>kann nur durch explizite Klammerung festgelegt werden; an `(a + b) + c'
>im Programmtext darf ein moderner C-"Ubersetzer (im Gegensatz zu einem
>antiken K&R-C-"Ubersetzer) nichts "andern.

OK, vielleicht kann ich ja was lernen, bzw. verwendete den Begriff
`Assoziativitaet' falsch.  Das entscheidende scheint mir zu sein
`solange das Ergebnis dasselbe bleibt'.  Ich meinte folgendes: Im
Ausdruck

int i; unsigned u; double d;

i + u + d;

muss zuerst i nach unsigned gecasted werden, bevor dann das Resultat
von i + u zu double wird und mit d verknuepft wird.  Es darf nicht
zuerst u zu double gecasted werden und dann i direkt nach double
gecasted werden (wenn was anderes rauskommen wuerde).  Oder ?

Wenn nicht, was heisst dann eigentlich, `von links assoziativ' ?

Danke,

Wolfram.
Technical Details
Message-ID: <4gcc9n$bpm@sparcserver.lrz-muenchen.de>
Path: arc1-ca.pugleaf.net!lrz-muenchen.de!news
References: <4ga36v$6tv@picard.toppoint.de> <4gail2$t20@aurora.science-computing.uni-tuebingen.de> <4gb0ub$h6o@sparcserver.lrz-muenchen.de> <4gca39$7p4@rigel.tm.informatik.uni-frankfurt.de>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!lrz-muenchen.de!news
From: Gloger@lrz.uni-muenchen.de (Wolfram Gloger)
Newsgroups: de.comp.os.linux,de.comp.lang.c
Subject: Re: BUG im gcc ??? (strlen)
Date: 20 Feb 1996 11:45:59 GMT
Organization: Universitaet Muenchen (Germany)
Distribution: world
Message-ID: <4gcc9n$bpm@sparcserver.lrz-muenchen.de>
References: <4ga36v$6tv@picard.toppoint.de> <4gail2$t20@aurora.science-computing.uni-tuebingen.de> <4gb0ub$h6o@sparcserver.lrz-muenchen.de> <4gca39$7p4@rigel.tm.informatik.uni-frankfurt.de>
Reply-To: Gloger@lrz.uni-muenchen.de
NNTP-Posting-Host: sun5.lrz-muenchen.de