/QIfist(取消 _ftol)
已弃用。 当需要从浮点型转换为整型时,取消调用 Helper 函数 _ftol
。
语法
/QIfist
备注
注意
/QIfist 仅可用于面向 x86 的编译器中;此编译器选项不可用于面向 x64 或 ARM 的编译器中。
除了从浮点类型转换为整型类型外,_ftol
函数还通过设置控制字的 10 和 11 位,确保浮点单位 (FPU) 的舍入模式向零舍入(截断)。 这可保证从浮点类型转换为整型类型符合 ANSI C 标准(丢弃数字的小数部分)中所述。 使用 /QIfist 时,此保证不再适用。 舍入模式将是 Intel 参考手册中记录的四种模式之一:
向最近的偶数舍入(如果等距)
向负无穷舍入
向正无穷舍入
向零舍入
可以使用 _control87、_controlfp、__control87_2 C 运行时函数来修改 FPU 的舍入行为。 FPU 的默认舍入模式为“向最近值舍入”。使用 /QIfist 可以提高应用程序的性能,但不是零风险。 在生产环境中依赖于使用 /QIfist 生成的代码之前,应彻底测试对舍入模式敏感的代码部分。
/arch (x86) 和 /QIfist 不能用于同一编译。
注意
/QIfist 默认无效,因为舍入位也会影响浮点到浮点舍入(每次计算后发生),因此,将 C 样式的标志设置为(向零)舍入时,浮点计算可能会有所不同。 如果代码取决于预期的截断浮点数小数部分的行为,则不应使用 /QIfist。 如果不确定,请勿使用 /QIfist。
QIfist 选项自 Visual Studio 2005 开始已弃用。 编译器在浮点转换到 int 的速度方面进行了重大改进。 有关已弃用编译器选项的列表,请参阅按类别列出的编译器选项中的已弃用并删除的编译器选项。
在 Visual Studio 开发环境中设置此编译器选项
打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性。
选择“配置属性”>“C/C++”>“命令行”属性页。
在 “附加选项” 框中键入编译器选项。
以编程方式设置此编译器选项
- 请参阅 AdditionalOptions。