🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.lang.c++
Article #1769

Re: Argghh! String-Literals nicht const! (War:Vergleich 'strcmp()' ...)

#1769
From: Ullrich von Bassewitz
Date: Tue, 05 Mar 1996 21:06
39 lines
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-mail
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>

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]