GCC と Atmel Studio の間で異なる動作をしているコードがあります:
uint32_t tc = 107900;
int8_t m = 59;
tc = tc - (m*1800);
GCC では、結果はtc
意図したとおり 1700 です。
AtmelStudio では、結果tc
は 132772 になり、これは正しくありません。
問題は、m*1800
項が AtmelStudio で m の限られた精度で計算されていることのようです。
私の質問は、どのコンパイラがそれを正しく行っているのですか?
ありがとうございました。