Hallo,
ich habe eine Frage zu C bzw. WINAVR:
Ich habe folgenden Code:
1 | uint8_t array[5];
|
2 | uint16_t summe;
|
3 |
|
4 | summe=(array[1]<<8)+array[2];
|
Mit diesem Code will ich aus den beiden Bytes im array einen 16-bit-Wert
machen. Das scheint auch zu funktionieren. Nun habe ich aber bemerkt,
dass es ja eigentlich einen Overflow geben müsste, wenn ich den
8-bit-Wert schiebe. Oder passiert das nicht weil der Compiler erkennt
dass die Variable summe ein 16-bit-Wert ist?
Gibt es da eine elegante Möglichkeit die obige Codezeile "abzusichern",
so dass in jedem C-Compiler dann auch das Gleiche passiert?
Vielen Dank für Antworten!