Michael Köhler schrieb:
> Irgendwer schrieb:
>> Und für was soll das "(uint16_t)(x - in_min)" gut sein?
>
> Lass mal überlegen: Vielleicht ein Type Cast damit mit 16 Bit an der
> Stelle gerechnet wird?
Das würde es so und so.
Regel in C:
Gerechnet wird im größten in einer Operation vorkommenden Datentyp,
jedoch nicht kleiner als int.
D.h.: wenn das alles uint8_t sind, dann wird sowieso erst mal alles in
int gerechnet.
Erst wenn der Compiler beweisen kann, dass es keinen Unterschied macht,
kann er die int-Rechnerei auf uint8_t runterbrechen. Allerdings dürfte
er da bei den Multiplikationen so seine Schwierigkeiten haben.
Im übrigen frage ich mich, warum der TO nicht hergeht und mal einen Test
seiner Änderungen fährt? Kommen die richtigen Ergebnisse raus? Tun sie
das auch bei den Grenzwerten, wenn die Zahlen an die Limits kommen?
Sorry, aber das ist nun wirklich etwas, was man als angehender
Programmierer lernen muss: man ist erst mal selbst für seinen Code
verantwortlich und hat sicherzustellen, dass er funktioniert. Dazu
gehört auch, dass man den Code testest und sich überlegt wie man durch
testen möglichst viele Fehler ausschliessen kann. Wie soll denn das in
Zukunft weitergehen? Fragst du wegen jedem Pfurz in einem Forum nach?
Ein bisschen mehr Mut zur Eigenverantwortung und zu den eigenen
Fähigkeiten!