Partilhar via


Quando usar funções embutidas

As funções embutidas são usadas da melhor forma para funções pequenas, como acessar membros de dados particulares. A principal finalidade dessas funções de acesso de uma ou duas linhas é retornar informações de estado sobre objetos; as funções curtas são sensíveis à sobrecarga das chamadas de função. As funções mais longas proporcionalmente passam menos tempo na sequência de chamadas/retornos e se beneficiam menos do processo de embutir.

Exemplo

A classe Point, apresentada em Resultados da chamada de função, pode ser otimizada como segue:

// 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 coordenada seja uma operação relativamente comum em um cliente dessa classe, especificar as duas funções de acesso (x e y no exemplo acima) como inline normalmente poupa a sobrecarga de:

  • Chamadas de função (inclusive passagem de parâmetros e colocação do endereço do objeto na pilha)

  • Preservação do registro de ativação do chamador

  • Configuração do novo registro de ativação

  • Comunicação do valor de retorno

  • Restauração do registro de ativação antigo

  • Valor de

Consulte também

Referência

inline, __inline, __forceinline