_control87()函数用于获取和设置浮点控制字。
_control87()函数 语法
unsigned int_control87(unsigned int new,unsigned int mask);
参数new为新的控制字位值;
参数mask为设置新控制字位的掩码。
_control87()函数返回浮点控制字。
_control87()函数 示例
本示例使用_control87函数实现在不同控制字下计算两个双精度数的乘积。其具体代码如下所示:
#include<stdio.h>
#include<float.h>
void main()
{
double a=0.1;/*声明双精度变量*/
printf("original:0x%4x ",_control87(0,0));/*输出原来的控制字*/
printf("%1.1f*%1.1f=%.15e ",a,a,a*a);/*计算两个双精度的乘积*/
printf("24-bit:0x%4x ",_control87(PC_24,MCW_PC));/*输出24位字长的控制字*/
printf("%1.1f*%1.1f=%.15e ",a,a,a*a);/*计算两个双精度的乘积*/
printf("Default:0x%.4x ",_control87(CW_DEFAULT,0xfffff));/*恢复默认控制字*/
printf("%1.1f*%1.1f=%.15e ",a,a,a*a);/*计算两个双精度的乘积*/
}
运行结果如图所示。