Nome da função : _control87
Arquivo de cabeçalho : <float.h>
Protótipo de função : unsigned int _control87(unsigned int new,unsigned int mask);
Função : Obtenha e defina palavras de controle de ponto flutuante
Parâmetros : unsigned int novo valor do novo bit da palavra de controle, unsigned int mask define a máscara do novo bit da palavra de controle
Valor de retorno : Retorna uma palavra de controle de ponto flutuante
Exemplo de programa : Calcule o produto de duas precisões duplas sob diferentes palavras de controle
#include<stdio.h>#include<float.h>intmain(){doublea=0.1;printf(original:0x%4xn,_control87(0,0));//Exibe a palavra de controle original printf(% 1.1f*%1.1f=%.15en,a,a ,a*a);//Calcula o produto de duas precisões duplas//Produz a palavra de controle de 24 bits printf(24-bit:0x%4xn,_control87(_PC_24,_MCW_PC));printf(%1.1f * %1.1f=%.15en,a,a,a*a);//Calcula o produto de duas precisão dupla return0;}
Resultados em execução:
original: 0x8001f0,1 * 0,1 = 1,000000000000000e-00224-bit: 0xa001f0,1 * 0,1 = 9,999999776482582e-003