Warum gibt mir der XC8-Compiler bei
1 | int i; |
2 | i = -32768; |
die Warnung "arithmetic overflow in constant expression" aus, während
1 | i = -32767; |
2 | i--; |
problemlos funktioniert und i anschließend auch den richtigen Wert -32768 enthält. Haben Konstanten und Variablen in C andere Wertebereiche? Oder ist das ein Compiler-Bug?