Если FLT_HAS_SUBNORM равен -1, тогда 1.0f / FLT_MAX должен давать субнормальное число или приводить к неопределенному поведению (UB)?

Вопрос: если FLT_HAS_SUBNORM равно -1, тогда будет 1.0f / FLT_MAX производят субнормальное число?

ISO / IEC 9899:2011 (E):

-1 неопределимая 25

  1.   Характеристика как неопределимая предназначена, если операции с плавающей запятой не интерпретируют последовательно субнормальные представления ни как нулевые, ни как ненулевые.

В вопросе выше:

  1. Согласно H.2.3.2 (операции с плавающей запятой) деление (divF) является операцией с плавающей запятой.
  2. Значения 1.0f а также FLT_MAX нормальные числа.

Примечание. Если явное определение поведения опущено, то в соответствии со стандартом C (ISO / IEC 9899:2011 (E)) (курсив добавлен):

Неопределенное поведение иначе обозначается в этом международном стандарте словами «неопределенное поведение» или пропуском какого-либо явного определения поведения .

0 ответов

Другие вопросы по тегам