/Oi(生成内部函数)

将某些函数调用替换为内部函数或有助于提高应用程序运行速度的其他特殊形式函数。

语法

/Oi[-]

备注

使用内部函数的程序速度更快,因为它们没有函数调用的开销,但由于创建了额外的代码,因此可能更大。

有关哪些函数具有内部形式的详细信息,请参阅 内部函数

/Oi 只是向编译器发出请求,以将某些函数调用替换为内部函数。 如果函数性能更好,编译器可能会调用函数(而不是将函数调用替换为内部函数)。
/Oi- 关闭此行为,如果 /Oi 已在其他位置指定,并且想要重写该行为,这可能很有用。

特定于 x86

内部浮点函数不会对输入值执行任何特殊检查,因此在受限输入范围内工作,并且具有与具有相同名称的库例程不同的异常处理和边界条件。 使用真正的内部窗体意味着 IEEE 异常处理丢失,并且 _matherrerrno 功能丢失;后者意味着 ANSI 一致性丢失。 然而,内部窗体可以大大加快浮点密集型程序的速度,对于许多程序,一致性问题几乎没有实际价值。

可以使用 Za 编译器选项替代生成真正的内部浮点选项。 在此情况下,函数将生成为库例程,后者将参数直接传递到浮点芯片,而不是将参数推送到程序堆栈。

结束 x86 专用

还可以使用内部函数来创建内部函数,或使用函数 (C/C++) 来显式强制调用函数。

在 Visual Studio 开发环境中设置此编译器选项

  1. 打开项目的“属性页” 对话框。 有关详细信息,请参阅在 Visual Studio 中设置 C++ 编译器和生成属性
  2. 选择“配置属性”“C/C++”>“优化”属性页面>
  3. 修改“启用内部函数”属性。

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

另请参阅

/O 选项(优化代码)
MSVC 编译器选项
MSVC 编译器命令行语法
编译器内部函数