Stefan S. schrieb:
> Ist das uint16_t so richtig angewendet?
In deinem ersten Beispiel hast du das Ergebnis der Multiplikation
gecastet, nicht die Operanden der Multiplikation, so wie in deinem
zweiten Beispiel.
Der Standard verlangt, dass in mindestens 16Bit (Mindestgrösse int)
gerechnet wird (in deinem Fall in signed). Wenn du in unsigned rechnen
willst, musst du einen der Operanden nach unsigned (hier uint16_t)
casten. Ist ein int grösser, z.B. 32Bit, spielt es in deinem Falle keine
Rolle, ob du in signed oder unsigned rechnest. Ich würde den Cast
jedenfalls drinlassen, da er aussagt, dass du mindestens in 16Bit
unsigned rechnen willst.
Edit: Ich habe die Annahme gemacht, dass deine beiden Operatoren vom Typ
uint8_t sind.