Article View: de.comp.lang.c++
Article #1769Re: Argghh! String-Literals nicht const! (War:Vergleich 'strcmp()' ...)
From: Ullrich von Bassewitz
Date: Tue, 05 Mar 1996 21:06
Date: Tue, 05 Mar 1996 21:06
39 lines
1935 bytes
1935 bytes
Dietmar Kuehl (kuehl@uzwil.informatik.uni-konstanz.de) wrote:
> Der Fehler ist (eigentlich) ein Syntaxfehler, da der Compiler
> "weiss", dass String-Literal eigentlich 'const' sind und nur aus
> historischen Gruenden als 'non-const' angesehen werden. Der Compiler
> kann bereits beim Uebersetzen sehen, dass da was im argen ist.
Wie soll er das machen? Beispiel:
void Clear (char* S)
{
*S = '\0';
}
int main ()
{
Clear ("Lalle");
return 0;
}
Da der Standard sagt, "Lalle" ist nicht const, ist der Aufruf von Clear
voellig legal. Dass innerhalb der Funktion dann auf den String geschrieben
wird ist auch legal, schliesslich ist der Parameter ein char*.
Wenn die Funktion dann noch in einem anderen Modul steht gibt es keine
Chance fuer den Compiler eine Warnung auszugeben.
Das Problem ist also nicht, dass es ein Syntaxfehler ist, sondern es ist
wirklich ein Problem der Definition von String-Literalen als non-const.
Solange das nicht geaendert wird gibt es fuer den Compiler keine
Moeglichkeit etwas zu tun (zumindest in den meisten Faellen nicht).
Gruss
Uz
--
Ullrich von Bassewitz uz@ibb.schwaben.com
Technical Details
Message-ID:
<8J69BBSI@wuschel.ibb.schwaben.com>Path:
arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!not-for-mailReferences:
<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> <4hfs7p$d8r@news.BelWue.DE> <4hgr3d$8as@rzsun02.rrz.uni-hamburg.de> <4hhr19$2gk@news.BelWue.DE>Show Full Headers
Complete Article Headers
Newsgroups: de.comp.lang.c++ Path: arc1-ca.pugleaf.net!wuschel.ibb.schwaben.com!not-for-mail From: uz@wuschel.ibb.schwaben.com (Ullrich von Bassewitz) Subject: Re: Argghh! String-Literals nicht const! (War:Vergleich 'strcmp()' ...) Date: 05 Mar 1996 21:06:23 GMT 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> <4hfs7p$d8r@news.BelWue.DE> <4hgr3d$8as@rzsun02.rrz.uni-hamburg.de> <4hhr19$2gk@news.BelWue.DE> Message-ID: <8J69BBSI@wuschel.ibb.schwaben.com> Reply-To: uz@ibb.schwaben.com Organization: Ingenieurbuero von Bassewitz X-Newsreader: TIN [version 1.2 PL2]