#include <math.h> // <cmath> en C++
#define HUGE_VAL /*implementation defined*/ #define HUGE_VALF /*implementation defined*/ (C99) #define HUGE_VALL /*implementation defined*/ (C99)
Ces macros représentent la plus grande valeur représentable par le type de données flottant considéré (huge, signifiant énorme en anglais).
La constante HUGE_VAL
et associée au type double
, la constante HUGE_VALF
et associée au type float
,
et la constante HUGE_VALL
et associée au type long double
,
Certaines fonctions mathématiques renvoie une de ces valeurs (en fonction du type considéré) pour indiquer qu'une erreur vient de survenir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <math.h> #include <stdio.h> #include <stdlib.h> int main() { double result = 1.0 / 0.0; printf( "1.0 / 0.0 = %lf\n", result ); if ( result == HUGE_VAL ) { printf( "La division est impossible.\n" ); } return EXIT_SUCCESS; } |
Il est à noter que la librairie mathématique doit être ajoutée durant l'étape de "link" (édition des liens)
de votre exécutable. Cela se réalise en ajoutant l'option -lm
à votre compilateur GCC. En cas
d'utilisation d'un autre compilateur, je vous renvoie vers la documentation de ce dernier.
$> gcc -o sample Sample.c -lm $> ./sample 1.0 / 0.0 = inf La division est impossible. $>
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :