/O1、/O2(最小化大小、最大化速度)

选择一组影响文件大小和速度的预定义选项。

/O1
/O2

备注

下表介绍 /O1/O2

选项

等效于

Comment

/O1(最小化大小)

/Og /Os /Oy /Ob2 /Gs /GF /Gy

在多数情况下创建最小的代码。

/O2(最大化速度)

/Og /Oi /Ot /Oy /Ob2 /Gs /GF /Gy

在多数情况下创建最快的代码。 (发布版本的默认设置)

/O1/O2 也支持命名返回值优化,它消除了基于堆栈的返回值的复制构造函数和析构函数。 请看下面的示例。 Test 函数将不创建复制构造函数或析构函数。 将输出语句添加到构造函数、析构函数和复制构造函数,以查看在运行程序时命名返回值优化的效果。 有关 Visual C++ 中的命名返回值优化的更多信息,请参见 https://go.microsoft.com/fwlink?linkid=55900

// O1_O2_NRVO.cpp
// compile with: /O1
struct A {
   A() {}
   ~A() {}
   A(const A& aa) {}
};

A Test() {
   A a;
   return a;
}
int main() {
   A aa;
   aa = Test();
}

x86 专用

这些选项隐含使用“框架指针省略”(/Oy) 选项。

END x86 Specific

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

  1. 打开该项目的**“属性页”**对话框。 有关详细信息,请参见如何:打开项目属性页

  2. 单击**“C/C++”**文件夹。

  3. 单击**“优化”**属性页。

  4. 修改**“优化”**属性。

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

请参见

参考

/O 选项(优化代码)

编译器选项

设置编译器选项

/EH(异常处理模型)