Hallo Forum, habt Ihr ne Idee wie ich die folgende Warnung unterdrückt bekomme? while ( *s++ = *t++ ) {;} warning: suggest parentheses around assignment used as truth value [-Wparentheses] In der Regel finde ich die Warnungen ja gut, aber an eben dieser einen Stelle ist absichtlich = anstelle von == geschrieben worden, nur das kann der gcc nicht wissen. Gruß vom Willi
Willi schrieb: > Stelle ist absichtlich = anstelle von == geschrieben worden, nur das > kann der gcc nicht wissen. Deswegen will er die Klammer haben:
1 | while ( (*s++ = *t++) ) {;} |
manchmal kanns ja so einfach sein Danke Peter!
Klammern in C kosten nix, und der Vorrat ist unerschöpflich ;) Oliver
Oliver schrieb: > Klammern in C kosten nix, und der Vorrat ist unerschöpflich ;) Gerade deshalb ist es erstaunlich, dass so viele Programmierer damit sehr sparsam umgehen...
Ich schreibe an solchen Stellen den Vergleich auf != '\0' i.d.R. aus, damit ich auch im Halbschlaf beim Fehlersuchen noch sehe, dass das einfache = Absicht war:
1 | while ( (*s++ = *t++) != '\0' ) {;} |
Nebeneffekt: der Compiler erkennt das auch ;-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.