Deklaracja

edytuj
#include <math.h>

#define HUGE_VAL  wartość
#define HUGE_VALF wartość
#define HUGE_VALL wartość

#define INFINITY  wartość

Makra HUGE_VAL, HUGE_VALF i HUGE_VALL reprezentują duże wartości typów odpowiednio double, float i long double, które niekoniecznie są możliwe do przedstawienia w typie węższym. Mogą one mieć wartość dodatniej nieskończoności jeżeli jest ona wspierana w konkretnej implementacji.

Makro INFINITY reprezentuje wyrażenie typu float o wartości reprezentującej nieskończoność. Jeżeli w danej implementacji typ float nie posiada reprezentacji nieskończoności makro reprezentuje dodatnie wyrażenie typu float o wartości niemożliwej do zapisania w typ typie, przez co użycie tego makra łamie zasady języka i spowoduje wygenerowanie ostrzeżenia lub błędu w trakcie kompilacji.

Przykład użycia

edytuj

Makra HUGE_VALF, HUGE_VALL oraz INFINITY zostały dodane do języka dopiero w standardzie C99.