Participer au site avec un Tip
Rechercher
 

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 :

Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé

Fonctions getpayload, getpayloadf et getpayloadl

Entête à inclure

#define __STDC_WANT_IEC_60559_EXT__
#include <math.h>  // <cmath> en C++

Fonctions getpayload, getpayloadf et getpayloadl

double getpayload( const double *x );          // C23 / ISO/IEC 60559
float getpayloadf( const float *x );          // C23 / ISO/IEC 60559
long double getpayloadl( const long double *x );          // C23 / ISO/IEC 60559

Ces trois fonctions extraient le payload d'une valeur NaN silencieuse ou signalante, lorsque l'implémentation expose cette information.

Ces fonctions sont liées au support ISO/IEC 60559. Elles ne sont disponibles que si l'implémentation expose les macros de fonctionnalités correspondantes.

Paramètres

Valeur de retour

Ces fonctions renvoient le payload du NaN sous forme d'entier positif représenté en virgule flottante. Si la valeur n'est pas un NaN, le résultat vaut -1.

Exemple de code

L'exemple suivant montre une utilisation simple de ces fonctions.

 1 
 2 
 3 
 4 
 5 
 6 
 7 
 8 
 9 
 10 
 11 
#define __STDC_WANT_IEC_60559_EXT__
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

int main() {
    double value = NAN;
    printf( "getpayload(&value) == %g
", getpayload(&value) );
    return EXIT_SUCCESS;
}
Exemple d'utilisation de la fonction getpayload.

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
getpayload(&value) == 0
$>

Sujets connexes

La librairie <math.h>


Vous êtes un professionnel et vous avez besoin d'une formation ? Programmation avec
Le langage C
Voir le programme détaillé