Gast
#3193730
Hallo, eine kurze Frage, die mir gerade durch den Kopf geistert: Eine Berechnung wird immer in der Breite des größten beteiligten Datentypen durchgeführt. Mindestens aber in INT. Der Datentyp der links vom "=" steht spielt dabei keine Rolle. Deswegen funktinoiert beim ATmega auch: uint8_t a = 5; uint8_t b = 3; uint16_t c = a * b; Ohne dass Casts notwendig sind. (Mal davon abgesehen dass der Compiler hier bei Konstanten eh selber rechnen wird) Aber wieso kann der Compiler dann aus "a + b" einen einfachen "add"-Befehl machen, der ja nur 8 Bit werte addiert?