Lowlevel

OffZone => Offtopic => Thema gestartet von: Another Stupid Coder am 04. August 2004, 14:15

Titel: Verständnisproblem mit einer GCC-Fehlermeldung
Beitrag von: Another Stupid Coder am 04. August 2004, 14:15
Hallo,
Ich bekomme jedesmal wenn ich die String-Libary compillieren will folgenden Fehler:
src/string.cpp:68: warning: suggest parentheses around assignment used as truth
(diesen Fehler erhalte ich bei mehreren fast identischen Zeilen).
Hier der Code aus der Datei "string.cpp":
char *String::Copy(char *String2)
{
    while(*ContentString++ = *String2++); // Das hier ist die Zeile 68
    return ContentString;
};
Titel: Verständnisproblem mit einer GCC-Fehlermeldung
Beitrag von: Daemon am 04. August 2004, 19:48
Das ist kein Fehler, sondern eine Warnung: gcc erkennt das Statement als eine Zuweisung, die immer true ist, an und sagt, dass es möglicherweise ein Fehler ist.
Titel: Verständnisproblem mit einer GCC-Fehlermeldung
Beitrag von: Roshl am 04. August 2004, 19:57
also entweder du hast eine funktion geschrieben die while heisst oder da steht totaler blödsinn oder ich wusste noch nicht das while ohne geschweiften klammerblock auskommt und ein semikolon hinten hat.(letzes beides eigentlich das selbe) was trifft denn zu?
Titel: Verständnisproblem mit einer GCC-Fehlermeldung
Beitrag von: Another Stupid Coder am 04. August 2004, 21:18
Das While sorgt ja nur dafür das der alle Zeichen des Strings durchlaufen werden und String1 dabei den Buchstaben von String2 zugewiesen bekommt...aber bei unterschiedlicher Länge läuft das denke ich ohnehin nicht wie ich gerade bemerkte...
Titel: Verständnisproblem mit einer GCC-Fehlermeldung
Beitrag von: gurru am 04. August 2004, 23:22
hi

Der gcc gibt eine Warnung aus, wenn bei einer Bedinung eine Zuweisung steht.
Wenn du die Warnung nicht mehr sehen kannst (oder sie dich stört) , setz um die Klammer noch ein Paar klammern:

while ((...))

mfg gurru
Titel: Verständnisproblem mit einer GCC-Fehlermeldung
Beitrag von: Roshl am 05. August 2004, 00:34
Also wäre ich ein Compiler würde ich mit der Anweisung nichts anfangen können. Oder ich würde so machen solange die beiden strings gleich sind kopiere ich sie ineinander aber das macht keinen sinn^^ Also für mich is das einfach nur seltsamer code^^
Titel: Verständnisproblem mit einer GCC-Fehlermeldung
Beitrag von: Another Stupid Coder am 05. August 2004, 07:24
Danke, für eure hilfe :)

@Roshl Hm, das schon aber solange er irgendwie funktioniert...
Titel: Verständnisproblem mit einer GCC-Fehlermeldung
Beitrag von: JensFZ am 05. August 2004, 08:20
Hiho

Also Für mich macht diese Anweisung sinn.

*ContentString++ = *String2++

bedeutet ja, dass er ein zeichen aus String2 nach ContentString kopiert. Durch das ++ dahinter springt er ein Zeichen weiter. Wenn das letzte Zeichen kopiert wurde ("\0"), ist in den While Kopf die bedingung False (da ja \0 dort steht, auch wenn es eine Zuweisung ist aber beide seiten sind \0.).

Man beachte auch, dass es eine Warnung und kein Fehler ist. VC++ Gibt ne warnung aus, wenn man ne Variable definiert aber nicht benutzt hat. Die meisten Warnungen sind eigentlich nur hinweise, dass ein Fehler auftreten könnte aber nicht muss.
Titel: Verständnisproblem mit einer GCC-Fehlermeldung
Beitrag von: Another Stupid Coder am 05. August 2004, 09:08
Schon klar, ich wollte ja nur fragen was mit dieser Warnung gemeint ist um eventuelle Fehlerquellen zu kennen.