Spec-Zone.ru › C

БЕСКОНЕЧНОСТЬ

Определено в заголовке <math.h>
#define INFINITY /*implementation defined*/
(с C99)

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

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

Стиль отображения бесконечности определяется реализацией.

Пример

Демонстрация стиля отображения бесконечности и формата IEEE.

#include <stdio.h>
#include <math.h>
#include <stdint.h>
#include <inttypes.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 и long double
(константа-макрос)
Документация C++ для INFINITY

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

Spec-Zone.ru

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