Namensräume
Varianten
Aktionen

HUGE_VALF, HUGE_VAL, HUGE_VALL

Von cppreference.com
< c‎ | numerik‎ | math
 
 
 
Allgemeine mathematische Funktionen
Funktionen
Grundlegende Operationen
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
Maximum/Minimum-Operationen
(C99)
(C99)
Exponentialfunktionen
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
Potenzfunktionen
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
Trigonometrische und hyperbolische Funktionen
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
Nächste ganze Gleitkommazahlen
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
Gleitkomma-Manipulation
(C99)(C99)
(C99)(C23)
(C99)
Verengende Operationen
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quanten- und Quantenexponent-Funktionen
Dezimal-Neu-Kodierungsfunktionen
Gesamtordnung und Payload-Funktionen
Klassifizierung
(C99)
(C99)
(C99)
(C23)
Fehler- und Gammafunktionen
(C99)
(C99)
(C99)
(C99)
Typen
Makrokonstanten
Spezielle Gleitkommawerte
HUGE_VALHUGE_VALFHUGE_VALLHUGE_VALDN
(C99)(C99)(C23)
(C99)(C23)
Argumente und Rückgabewerte
Fehlerbehandlung
Schnelle Operationsanzeigen
 
Definiert in Header <math.h>
#define HUGE_VALF /*implementierungsabhängig*/
(seit C99)
#define HUGE_VAL  /*implementierungsabhängig*/
#define HUGE_VALL /*implementierungsabhängig*/
(seit C99)

Die Makros HUGE_VALF, HUGE_VAL und HUGE_VALL erweitern sich zu positiven Gleitkommakonstanten Ausdrücken, die gleich den Werten sind, die von Gleitkommafunktionen und Operatoren im Falle eines Überlaufs zurückgegeben werden (siehe math_errhandling).

Konstante Erklärung
HUGE_VALF Erweitert sich zu einem positiven float Ausdruck, der einen Überlauf anzeigt
HUGE_VAL Erweitert sich zu einem positiven double Ausdruck, der einen Überlauf anzeigt, nicht notwendigerweise darstellbar als float
HUGE_VALL Erweitert sich zu einem positiven long double Ausdruck, der einen Überlauf anzeigt, nicht notwendigerweise darstellbar als float oder double

Bei Implementierungen, die Gleitkomma-Unendlichkeiten unterstützen, erweitern sich diese Makros immer zu den positiven Unendlichkeiten von float, double und long double.

[bearbeiten] Beispiel

#include <math.h>
#include <stdio.h>
 
int main(void)
{
    const double result = 1.0 / 0.0;
    printf("1.0/0.0 == %f\n", result);
    if (result == HUGE_VAL)
        puts("1.0/0.0 == HUGE_VAL");
}

Mögliche Ausgabe

1.0/0.0 == inf
1.0/0.0 == HUGE_VAL

[bearbeiten] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: TBD)
  • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: TBD)
  • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: TBD)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: 231)
  • F.10/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: 517)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.12/3 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: 212)
  • F.9/2 HUGE_VAL, HUGE_VALF, HUGE_VALL (p: 454)
  • C89/C90-Standard (ISO/IEC 9899:1990)
  • 4.5 HUGE_VAL

[bearbeiten] Siehe auch

ergibt positive Unendlichkeit oder den Wert, der garantiert einen float überläuft
(Makrokonstante) [bearbeiten]
C++ Dokumentation für HUGE_VAL