Есть вот такой проргамный код для АВР(например):
unsigned char a = 100; float b = 20;
далее в программе
if( b < -a ){...}
так вот оказывается, в таком случаее условие выполняется. Если кастовать вот так :
if( b < - (int) a ) {...}
тогда все ок. Объясните почему? Я не могу понять, что с чем сравнивается, если не кастовать, и почему так происходит?
|