/QIfist(取消 _ftol)
当需要从浮点型转换为整型时,取消调用 Helper 函数 _ftol。
/QIfist
备注
说明 |
---|
/QIfist 仅仅可用于面向 x86 的编译器中;此编译器选项不可用于面向 x64 或 Itanium 的编译器中。 |
除了从浮点型转换为整型外,_ftol 函数还通过设置控制字的第 10 位和第 11 位来确保浮点单元 (FPU) 的舍入模式为向零方向(截断)。这保证从浮点型转换为整型时的操作正如 ANSI C 标准所描述的一样(丢弃数字的小数部分)。而使用 /QIfist 时,不再保证获得此结果。舍入模式应是记录在 Intel 参考手册中的四种模式之一:
舍入为最接近的整数(若等距则为偶数)
向负无穷大方向舍入
向正无穷大方向舍入
向零方向舍入
可以使用 _control87, _controlfp, __control87_2 C 运行时函数修改 FPU 的舍入行为。FPU 的默认舍入模式为“舍入为最接近的整数”。使用 /QIfist 可以改善应用程序的性能,但并不是没有风险。在生产环境中信任用 /QIfist 生成的代码前,要彻底测试对舍入模式敏感的代码部分。
/arch (x86) 和 /QIfist 不能在同一 compiland 上使用。
说明 |
---|
默认情况下,/QIfist 是无效的,因为舍入位数也会影响浮点到浮点的舍入(在每次计算后发生),因此,当设置 C 样式(向零方向)舍入的标志时,浮点计算可能会不同。如果代码取决于截断浮点数的小数部分的预期行为,则不应使用 /QIfist。如果没有把握,请不要使用 /QIfist。 |
/QIfist 已弃用。编译器极大地提高了浮点到整数的转换速度。有关更多信息,请参见 Deprecated Compiler Options。
在 Visual Studio 开发环境中设置此编译器选项
打开项目的**“属性页”**对话框。有关详细信息,请参见如何:打开项目属性页。
单击**“C/C++”**文件夹。
单击**“命令行”**属性页。
在**“附加选项”**框中键入编译器选项。
以编程方式设置此编译器选项
- 请参见 AdditionalOptions。