Na stronie Sensiriona:
// definicje typedef union { unsigned int i; float f; } value; value humi_val,temp_val;
// krytyczna konwersja humi_val.f=(float)humi_val.i;
GCC zle oblicza humi_val.f, Keil nie ma tego problemu. Sprawe rozwiazuje zastosowanie dodatkowej zmiennej:
// rozwiazanie float temp=(float)humi_val.i; humi_val.f=temp;
Czy to jest blad GCC, czy taka operacja moze dawac rozne wyniki w zaleznosci od kompilatora?
J.