Почему условие if ( a == a) может не выполняться для Embedded-разработки?
float b;
...
if (b == b)
Не выполняется тогда и только тогда, когда в b -- NaN.
Обоснование есть в стандарте: пункт стандарта C99 6.2.6.1:4 говорит:Two values (other
than NaNs) with the same object representation compare equal, but values that compare
equal may have different object representations..
Вообще компилятор всё это вырежет к чертям, потому что не было задано ключевое слово volatile