Forum: Compiler & IDEs "warning: suggest parentheses around assignment" unterdrücken


von Willi (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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++) ) {;}

von Willi (Gast)


Lesenswert?

manchmal kanns ja so einfach sein
Danke Peter!

von Oliver (Gast)


Lesenswert?

Klammern in C kosten nix, und der Vorrat ist unerschöpflich ;)

Oliver

von Mark B. (markbrandis)


Lesenswert?

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...

von der mechatroniker (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.