Article View: de.comp.os.linux
Article #42Re: BUG im gcc ??? (strlen)
From: Wolfram Gloger
Date: Tue, 20 Feb 1996 11:45
Date: Tue, 20 Feb 1996 11:45
40 lines
2317 bytes
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!newsReferences:
<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