Nom de la fonction : _control87
Fichier d'en-tête : <float.h>
Prototype de fonction : unsigned int _control87 (non signé int nouveau, masque int non signé) ;
Fonction : Obtenir et définir des mots de contrôle à virgule flottante
Paramètres : unsigned int nouvelle valeur du bit du nouveau mot de contrôle, unsigned int mask définit le masque du nouveau bit du mot de contrôle
Valeur de retour : renvoie un mot de contrôle à virgule flottante
Exemple de programme : Calculer le produit de deux doubles précisions sous des mots de contrôle différents
#include<stdio.h>#include<float.h>intmain(){doublea=0.1;printf(original:0x%4xn,_control87(0,0));//Sortie du mot de contrôle d'origine printf(% 1.1f*%1.1f=%.15en,a,a,a*a);//Calculer le produit de deux doubles précisions//Sortir le mot de contrôle 24 bits printf(24-bit:0x%4x n,_control87(_PC_24,_MCW_PC));printf(%1.1f*%1.1f=%.15en,a,a,a*a);//Calculer le produit de deux return0 double précision;}
Résultats en cours d'exécution :
original:0x8001f0.1*0.1=1.000000000000000e-00224 bits:0xa001f0.1*0.1=9.999999776482582e-003