Compartilhar via


Quando usar funções embutidas

Funções embutidas são melhor utilizadas para pequenas funções como, por exemplo, acesso a membros de dados privados.O principal objetivo dessas funções "acessador" de uma ou duas linhas é retornar informações de estado sobre objetos; curtas funções são sensíveis a sobrecarga de chamadas de função.Funções mais gastar proporcionalmente menos tempo na seqüência de retorno de chamada/e beneficiar-se menos de inlining.

Exemplo

O Point classe, introduzida no Resultados da chamada de função pode ser otimizado da seguinte maneira:

// when_to_use_inline_functions.cpp
class Point
{
public:
    // Define "accessor" functions as
    //  reference types.
    unsigned& x();
    unsigned& y();
private:
    unsigned _x;
    unsigned _y;
};

inline unsigned& Point::x()
{
    return _x;
}
inline unsigned& Point::y()
{
    return _y;
}
int main()
{
}

Supondo que a manipulação de coordenada é uma operação relativamente comum em um cliente de tal uma classe, especificando as duas funções de assessor (x e y no exemplo anterior) como in-line normalmente economiza a sobrecarga em:

  • Chamadas de função (incluindo a passagem de parâmetro e colocar o endereço do objeto na pilha)

  • Preservação do quadro de pilha do chamador

  • O programa de instalação do novo quadro de pilha

  • Valor de retorno comunicação

  • Restauração antigo do quadro de pilha

  • Return

Consulte também

Referência

inline, embutido, __forceinline