Freigeben über


Wann Inlinefunktionen verwendet

Inlinefunktionen sind gut für kleine Funktionen, z. B. Zugriff auf privaten Datenmember verwendet.Der wesentliche diesem Zweck ein oder zweispurigen „Accessor“ Funktionen ist, Zustandsinformationen über Objekte zurückzugeben. kurze Funktionen sind für den Mehraufwand von Funktionsaufrufen vertraulich.Längere Funktionen entsprechend verbringen weniger Zeit im Aufruf/Sequenz zurückgibt und profitieren kleiner von Inlining.

Beispiel

Die Point-Klasse eingeführt in Funktionsaufruf-Ergebnisse kann optimiert werden, wie nachfolgend veranschaulicht:

// 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()
{
}

Anmaßende beigeordnete Manipulation ist ein relativ allgemeiner Vorgang in einem Client eine solche Klasse und gibt die beiden Accessorfunktionen (x und y ), wie im vorhergehenden Beispiel inline in der Regel den Mehraufwand gezeigt wird:

  • Parameter (einschließlich Funktionsaufrufe, der die Adresse des Objekts auf dem Stapel abgelegt und übergibt)

  • Beibehaltung des Stapelrahmens des Aufrufers

  • Eine neue Stapelrahmen setup

  • Kommunikation Rückgabewert

  • Die alte Stapelrahmen wiederherstellung

  • Return

Siehe auch

Referenz

inline, __inline, __forceinline