У меня есть приложение, которое загружает двоичный файл float
значения из файла. Я обнаружил, что «производитель» этого файла иногда помещает в него значения, которые не являются допустимыми битовыми шаблонами с плавающей запятой, особенно 0x80426c51
(могут быть и другие). Когда я делаю fread()
из этого этого значения в адрес с плавающей запятой (который был приведен к void *
) успешно завершается. Но если я попытаюсь получить доступ к float
чтобы сделать что-нибудь, исключение происходит. Я даже не могу разыграть float
к double
так как это недействительно float
, Я думаю, что мне нужно что-то вроде fpclassify()
который может занять float
, Но я не знаю, существует ли такая функция / макрос. Моя целевая операционная система <math.h>
даже не имеет fpclassify()
, Я использую gcc версии 4.8.1.9 в «не основной» операционной системе (не Windows / Mac / Linux) с набором инструкций core-i7. Хотя я использую C ++, я не использую ни стандартные библиотеки шаблонов, ни RTTI, потому что это встроенная система.
Примечание: в краткосрочной перспективе я изменил программу-генератор, но мне не нравится это как долгосрочное решение, так как я не могу иметь никакого контроля над конечной программой-генератором.
Задача ещё не решена.
Других решений пока нет …