10

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 の限られた精度で計算されていることのようです。

私の質問は、どのコンパイラがそれを正しく行っているのですか?

ありがとうございました。

4

2 に答える 2