Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A inline palavra-chave é um especificador de função que diz ao compilador para substituir o código dentro da definição de função para cada instância de uma chamada de função.
Observações
A substituição de código embutido ocorre apenas a critério do compilador. Por exemplo, o compilador não embutirá uma função se seu endereço for tomado ou se for muito grande para embutido. Quando o compilador não inline uma função definida em um arquivo de cabeçalho, ele é marcado para o vinculador para evitar violações de regra de uma definição (ODR).
Para que uma função seja considerada como candidata a inlining, ela deve usar a definição de função de novo estilo com uma assinatura que declare o tipo de retorno e quaisquer tipos de parâmetro.
Use este formulário para especificar uma função embutida:
inlinedefinição de função
As funções embutidas geram um código mais rápido e, às vezes, menor do que a chamada de função equivalente:
As funções embutidas economizam o tempo necessário para preparar a pilha para argumentos e um valor de retorno, e o tempo para executar o salto e o retorno de uma chamada de função.
Mesmo quando repetidas várias vezes, pequenas funções embutidas de talvez três linhas ou menos criam menos código do que a chamada de função equivalente porque o compilador não gera código para manipular argumentos e um valor de retorno.
O compilador pode otimizar funções geradas em linha de maneiras que não estão disponíveis para funções normais. O compilador geralmente não executa otimizações entre procedimentos diferentes.
Não confunda funções que usam inline com código assembler embutido. Para obter mais informações sobre montador em linha, consulte Montador em linha.
específicos da Microsoft
A Microsoft também suporta __inline palavras-chave para __forceinline dizer ao compilador para substituir o código dentro da definição de função para cada instância de uma chamada de função. A __inline palavra-chave é sinónimo de inline. A __forceinline palavra-chave diz ao compilador para relaxar a heurística sobre se a função deve ser embutida, embora não garanta que uma função será embutida.
Para compatibilidade com versões anteriores, _inline e _forceinline são sinônimos para __inline e __forceinline, respectivamente, a menos que a opção /Za do compilador (Desativar extensões de idioma) seja especificada.
END Específico da Microsoft