/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 开发环境中设置此编译器选项

  1. 打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性

  2. 选择“配置属性”>“C/C++”>“命令行”属性页

  3. “附加选项” 框中键入编译器选项。

以编程方式设置此编译器选项

另请参阅

/Q 选项(低级别操作)
MSVC 编译器选项
MSVC 编译器命令行语法