Article View: de.comp.lang.c++
Article #1752Re: Argghh! String-Literals nicht const! (War:Vergleich 'strcmp()' ...)
From: Frank Thilo
Date: Mon, 04 Mar 1996 21:43
Date: Mon, 04 Mar 1996 21:43
35 lines
2060 bytes
2060 bytes
a2597420@athena.rrz.uni-koeln.de (Joachim Zobel) wrote:
>Scheint mir eine ziemliche Sauerei zu sein. Das ARM (2.5.4) sagt:
>
>String literals are of type char[] and not const char[] for
>compatibility with Classic C where early software took advantage of
>literals beeing distinct and modifiable.
>
>Das heisst: Man hat den Standard so gemacht, das alter Code zwar noch
>compiliert, aber undefiniertes Verhalten hat, anstatt den Compiler die
>entsprechenden Stellen anzeigen zu lassen. Was sollte das?
Nun, die Begruendung erscheint mir auch etwas fragwuerdig. Meienr
Meinung nach ist der Grund eher der, dass alter Code halt ohne
Verwendung von 'const' geschrieben wurde und nun nicht mehr
compilierbar waere:
void f(char *);
...
f("test");
Dies gaebe eine Fehlermeldung, wenn Stringliterale vom Typ 'const char *'
waeren. Man muesste also in alle alten Quellcodes explizite casts
hineinschreiben.
Wenn ich mich nicht taeusche (lasse mich gerne korrigieren), werden in
ANSI-C solch implizite casts von 'const char *' auf 'char *'
durchgefuehrt, so dass natuerlich auch hier Probleme beim Umstieg auf
C++ auftreten. Nur ist der Fall mit den Stringkonstanten wohl einfach
zu haeufig.
--
Frank Thilo - thilo@unix-ag.uni-siegen.de - PGP key available
IRC: Chestal - http://www.unix-ag.uni-siegen.de/~thilo/
Technical Details
Message-ID:
<4P2OxAu7tdKe089yn@unix-ag.uni-siegen.de>Path:
arc1-ca.pugleaf.net!news.dfn.de!si-nic!usenetReferences:
<4h2pg1$cto@news.BelWue.DE> <PDZ9BGIH@wuschel.ibb.schwaben.com> <4hass8$75o@news.rrz.uni-koeln.de> <4hehoi$21n@rzsun02.rrz.uni-hamburg.de> <4hfekb$lbn@news.rrz.uni-koeln.de>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!news.dfn.de!si-nic!usenet From: thilo@unix-ag.uni-siegen.de (Frank Thilo) Newsgroups: de.comp.lang.c++ Subject: Re: Argghh! String-Literals nicht const! (War:Vergleich 'strcmp()' ...) Date: Mon, 04 Mar 1996 22:43:20 +0100 Organization: University of Siegen Message-ID: <4P2OxAu7tdKe089yn@unix-ag.uni-siegen.de> References: <4h2pg1$cto@news.BelWue.DE> <PDZ9BGIH@wuschel.ibb.schwaben.com> <4hass8$75o@news.rrz.uni-koeln.de> <4hehoi$21n@rzsun02.rrz.uni-hamburg.de> <4hfekb$lbn@news.rrz.uni-koeln.de> Reply-To: gl600@appl2.hrz.uni-siegen.de NNTP-Posting-Host: appl2.hrz.uni-siegen.de Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit