Share via


/Ob (expansão de função embutida)

Controla a expansão embutida de funções. Por padrão, durante a otimização, a expansão ocorre a critério do compilador em todas as funções, geralmente conhecida como auto-inlining.

Sintaxe

/Ob{0|1|2|3}

/Ob{0|1|2}

Argumentos

0
O valor padrão em /Od. Desabilita expansões embutidas.

1
Permite a expansão somente de funções marcadas com inline, __inline ou __forceinline ou em uma função de membro do C++ definida em uma declaração de classe.

2
O valor padrão em /O1 e /O2. Permite que o compilador expanda qualquer função não explicitamente marcada para não embutir.

3
Essa opção especifica um embutimento mais agressivo do que /Ob2, mas tem as mesmas restrições. A opção /Ob3 está disponível a partir do Visual Studio 2019.

Comentários

O compilador trata as opções de expansão embutida e as palavras-chave como sugestões. Não há garantia de que as funções serão expandidas embutidas. Você pode desabilitar expansões embutidas, mas não pode forçar o compilador a embutir uma função específica, mesmo ao usar a palavra-chave __forceinline.

Para excluir funções da consideração como candidatas à expansão embutida, você pode usar __declspec(noinline) ou uma região marcada por diretivas #pragma auto_inline(off) e #pragma auto_inline(on). Para obter informações sobre outra maneira de fornecer dicas de embutir para o compilador, confira a diretiva #pragma intrinsic.

Observação

As informações que são coletadas das execuções de teste de criação de perfil substituem as otimizações que, de outra forma, estariam em vigor porque você especificou /Ob, /Os ou /Ot. Para obter mais informações, confira Otimizações guiadas por perfil.

Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.

  2. Selecione a página de propriedades Propriedades da Configuração>C/C++>Otimização.

  3. Modifique a propriedade Expansão de Função Embutida.

A opção /Ob3 não está disponível na propriedade Expansão de Função Embutida. Para definir /Ob3:

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.

  2. Selecione a página de propriedades Propriedades de Configuração>C/C++>Linha de Comando.

  3. Insira /Ob3 em Opções Adicionais.

Para definir essa opção do compilador via programação

Confira também

Opções /O (otimizar código)
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC