Spec-Zone.ru › C

INFINITY

Определено в заголовочном файле <math.h> (устарело в C23)
Определено в заголовочном файле <float.h> (начиная с C23)
#define INFINITY /* implementation-defined */
(начиная с C99)

Если реализация поддерживает бесконечность для типа float, макрос INFINITY раскрывается в константное выражение типа float, принимающее значение положительной или беззнаковой бесконечности.

В противном случае макрос INFINITY раскрывается в положительное значение, которое гарантированно вызывает переполнение типа float во время компиляции, а использование этого макроса приводит к предупреждению компилятора.

(до C23)

В противном случае макрос INFINITY не определён.

(начиная с C23)

Пример

Показывает стиль вывода бесконечности и формат IEEE.

#include <float.h> // since C23
#include <inttypes.h>
#include <math.h>
#include <stdio.h>
#include <stdint.h>
#include <string.h>

int main(void)
{
    double f = INFINITY;
    uint64_t fn;
    memcpy(&fn, &f, sizeof f);
    printf("INFINITY:   %f %" PRIx64 "\n", f, fn);
}

Возможный вывод:

INFINITY:   inf 7ff0000000000000

Ссылки

  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.12/4 INFINITY (стр. 231–232)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.12/4 INFINITY (стр. 212–213)

См. также

isinf
(C99)
проверяет, является ли заданное число бесконечным
(макрос-функция)
HUGE_VALFHUGE_VALHUGE_VALL
(C99)(C99)
обозначает значение, слишком большое для представления (бесконечность) типами float, double и longdouble соответственно
(макроконстанта)
Документация C++ для INFINITY

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/numeric/math/INFINITY

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API