In unserer Firma haben wir eine Richtlinie zur Kompilierung mit -Wconversion
, die einige Konvertierungswarnungen erzeugt. Während ich diese zusätzliche Kontrolle verhindert Fehler machen zustimmen, ist es ärgerlich Warnungen abgekürzte Operatoren zu sehen, wie im folgenden Fall:Auflösen von Konvertierungswarnungen mit Compound-Zuweisungsoperatoren
uint8_t byte;
byte += 8; // conversion to 'uint8_t' from 'int' may alter its value [-Wconversion]
Nun kann dies, indem es als byte = (uint8_t)(byte+8)
Umschreiben gelöst werden, was wiederum die Lesbarkeit des Codes reduziert.
Gibt es einen besseren Weg, dies zu tun?
Wie genau kompilieren Sie das? Kompilieren mit gcc oder g ++ auf OSX gibt keine Warnungen :( –
Kompilieren mit gcc und '-WConversion' und es sollte eine Warnung melden. –
Nun, ich denke, das ist Clang spielt einen schlechten Witz auf mich. Hier ist was ich do: 'gcc -Wconversion -std = c99 -o prog main.c' gibt mir keine Warnungen Kompilieren mit' -Wall 'nur schlägt vor, die Variable zu initialisieren.Gerne es unter Linux in einer Sekunde versuchen –