Если FLT_HAS_SUBNORM равен -1, тогда 1.0f / FLT_MAX должен давать субнормальное число или приводить к неопределенному поведению (UB)?
Вопрос: если
FLT_HAS_SUBNORM
равно -1, тогда будет
1.0f / FLT_MAX
производят субнормальное число?
ISO / IEC 9899:2011 (E):
-1 неопределимая 25
- Характеристика как неопределимая предназначена, если операции с плавающей запятой не интерпретируют последовательно субнормальные представления ни как нулевые, ни как ненулевые.
В вопросе выше:
- Согласно H.2.3.2 (операции с плавающей запятой) деление (divF) является операцией с плавающей запятой.
- Значения
1.0f
а такжеFLT_MAX
нормальные числа.
Примечание. Если явное определение поведения опущено, то в соответствии со стандартом C (ISO / IEC 9899:2011 (E)) (курсив добавлен):
Неопределенное поведение иначе обозначается в этом международном стандарте словами «неопределенное поведение» или пропуском какого-либо явного определения поведения .