от
В C99 было добавлено раунда-к-целое число-тип функций, которые отсутствовали в С90. Одним из них является
lround
. Единственное отличие
lround(x)
от
(long)round(x)
заключается в том, что если бы результат был бы вне досягаемости для окончательного тип (
long
здесь), Бывший имеет неопределенное значение и возможные ошибки, в то время как последний имеет неопределенное поведение. Что заставляет меня задаться вопросом, что есть только
lround
и
lrint
, но не например,
lceil
или
lfloor
. С99 обоснование У5.Только 10 переговоры (в 7.12.9.5) о наименовании и типе параметров для двух (до
long long
версии) функции, упомянутые в стандарте, а не почему они были введены и были ли рассмотрены другие направления округления. Итак, что стало основанием для введения
lround
и
lrint
, но не
lceil
и
lfloor
в C99?

Пожалуйста, войдите или зарегистрируйтесь для публикации ответа на этот вопрос.

...