ชื่อฟังก์ชัน : _control87
ไฟล์ส่วนหัว : <float.h>
ต้นแบบฟังก์ชัน : int _control87 ที่ไม่ได้ลงนาม (int ใหม่ที่ไม่ได้ลงนาม, int mask ที่ไม่ได้ลงนาม);
ฟังก์ชั่น : รับและตั้งค่าคำควบคุมจุดลอยตัว
พารามิเตอร์ : ค่าบิตคำควบคุมใหม่ที่ไม่ได้ลงนาม int ใหม่ หน้ากาก int ที่ไม่ได้ลงนามจะตั้งค่าหน้ากากของบิตคำควบคุมใหม่
ค่าที่ส่งกลับ : ส่งกลับคำควบคุมจุดลอยตัว
ตัวอย่างโปรแกรม : คำนวณผลคูณของความแม่นยำสองเท่าภายใต้คำควบคุมที่ต่างกัน
#include<stdio.h>#include<float.h>intmain(){doublea=0.1;printf(Original:0x%4xn,_control87(0,0));//ส่งออกคำควบคุมต้นฉบับ printf(% 1.1f*%1.1f=%.15en,ก,ก ,a*a);//คำนวณผลคูณของความแม่นยำสองเท่า//ส่งออกคำควบคุม 24 บิต printf(24-bit:0x%4xn,_control87(_PC_24,_MCW_PC));printf(%1.1f * %1.1f=%.15en,a,a,a*a);//คำนวณผลคูณของผลตอบแทนที่มีความแม่นยำสองเท่า 0;}
ผลการวิ่ง:
ต้นฉบับ: 0x8001f0.1*0.1=1.000000000000000e-00224-bit:0xa001f0.1*0.1=9.999999776482582e-003