#define __STDC_WANT_IEC_60559_EXT__ #include <math.h> // <cmath> en C++
int totalorder( const double *x, const double *y ); // C23 / ISO/IEC 60559
int totalorderf( const float *x, const float *y ); // C23 / ISO/IEC 60559
int totalorderl( const long double *x, const long double *y ); // C23 / ISO/IEC 60559
Ces trois fonctions testent la relation d'ordre total définie par ISO/IEC 60559 pour la paire *x, *y.
Ces fonctions renvoient une valeur non nulle si la relation d'ordre total est vraie, et zéro sinon.
L'exemple suivant montre une utilisation simple de ces fonctions.
1 2 3 4 5 6 7 8 9 10 11 12 |
#define __STDC_WANT_IEC_60559_EXT__ #include <math.h> #include <stdio.h> #include <stdlib.h> int main() { double x = -0.0; double y = +0.0; printf( "totalorder(&x, &y) == %d ", totalorder(&x, &y) ); 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.
$> gcc -o sample sample.c -lm $> ./sample totalorder(&x, &y) == 1 $>
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 :