Es ist eine der Optimierungsmethoden, die von Programmierern verwendet werden, um die Ausführung zeitempfindlicher Codeabschnitte durch Compiler zu beschleunigen. Der Overhead eines Funktionsaufrufs kann durch entfernt werden Einbindung A Funktion, Dadurch kann der Compiler den Funktionsaufruf durch den tatsächlichen Inhalt der Funktion ersetzen.
So verwenden Sie Inline -Funktionen in C++
Benutzen Inline -Funktionen In C ++ müssen Sie das Keyword angeben 'im Einklang' Vor der Funktionserklärung. Hier ist ein Beispiel:
inline int add (int a, int b)Der 'im Einklang' Das Schlüsselwort informiert den Compiler, einen Aufruf der Funktion im gesamten Programm des Programms durch den tatsächlichen Code der Funktion zu ersetzen. Die Funktionsdefinition wird sofort an der Aufrufanweisung geändert, anstatt zusammen mit der Speicheradresse des Anweisungen gespeichert und in den Speicher geladen wird.
Es ist wichtig zu berücksichtigen, dass die im Einklang Das Schlüsselwort fragt den Compiler nach etwas, anstatt ihm einen Befehl zu geben. Unter bestimmten Umständen kann der Compiler beschließen, die Funktion nicht zu inzieren. Daher können Sie ein Makro anstelle der Definition verwenden im Einklang.
Beispiel für Inline -Funktionen
Das Folgende ist der zu verwendende Code Inline -Funktionen in C ++:
#enthaltenIm obigen Programm die Funktion setNum () wird als eine identifiziert Inline -Funktion Verwenden der Phrase "im Einklang". Der Compiler ersetzt die aufrufende Erklärung durch die Definition von setNum () Wenn diese Inline -Funktion aufgerufen wird. Infolgedessen ersetzt der Anweis setNum () und speichert 5 in der Variablen n.
Ausgang
Wann verwendet Inline -Funktionen in C++?
Obwohl der Overhead jedes Funktionsaufrufs schnell montieren kann, Inline -Funktionen kann die Geschwindigkeit in Programmen erheblich erhöhen, die zahlreiche kleinere Funktionsaufrufe tätigen. Nichtsdestotrotz, Einbindungsfunktionen Ist nicht immer die ideale Strategie, da der Code größer ist und das Caching -System der CPU möglicherweise weniger effektiv macht.
Beim Bestimmen, ob eine Funktion inline, Es gibt mehrere Dinge zu berücksichtigen.
1: Größe der Funktion
Die Größe der Funktion ist eines der wichtigsten Elemente. Kleinere Funktionen sind in der Regel bessere Kandidaten für Einbindung Da sich weniger wahrscheinlich die Größe des Codes und der CPU -Caching negativ beeinflussen. Da der Overhead von Funktionsaufrufen möglicherweise einen Engpass darstellt, sind Funktionen, die häufig oder in engen Schleifen bezeichnet werden, geeignete Kandidaten für Einbindung.
2: Optimierungsstufe
Das Optimierungsgrad des Compiler sollte ebenfalls berücksichtigt werden. Die meisten modernen Compiler haben eine "im Einklang" Schlüsselwort, das verwendet werden kann, um vorzuschlagen, dass eine Funktion der Eingebraucht; Wenn der Compiler jedoch beurteilt, dass es keinen Geschwindigkeitsvorteil geben würde. Bei höheren Optimierungsniveaus führen Compiler häufig aggressivere Optimierungen durch, sodass Funktionen dies nicht tun Eingebraucht Bei niedrigeren Ebenen kann auch sein Eingebraucht bei höheren Ebenen.
3: Einfluss des Inline -Einflusss
Es ist auch wichtig, die Auswirkungen von zu berücksichtigen Einbindung auf Codegröße. Während Einbindung Kann die Leistung verbessern, indem der Overhead von Funktionsaufrufen reduziert wird. Er kann auch die Größe des Codes erhöhen und möglicherweise die Effizienz des CPU -Caching -Systems verringern. Im Allgemeinen sind Funktionen, die zu groß sind oder Schleifen oder statische Variablen enthalten Einbindung.
4: Programmierung von Mikroarchitekturen
Inline -Funktionen werden am meisten in der Mikroarchitekturprogrammierung verwendet, in Fällen, in denen die Gemeinkosten von Funktionsaufrufen erheblich sind. Es ist auch wertvoll bei der Erstellung kleiner Helferroutinen oder -Träger, die im gesamten Code wiederholt aufgerufen werden.
Abschluss
Inline -Funktionen In C ++ sind leistungsstarke Funktionen zur Verbesserung der Programmleistung, aber es ist wichtig, die Auswirkungen von sorgfältig zu berücksichtigen Einbindung Bei Codegröße, CPU -Zwischenspeicherung und Optimierungsstufe. Indem Entwickler sorgfältig ausgewählt werden, welche Funktionen und auf welcher Optimierungsstufe die Größe oder Lesbarkeit erhebliche Leistungsverbesserungen erzielen, können sie erhebliche Leistungsverbesserungen erzielen, ohne die Codegröße oder Lesbarkeit zu beeinträchtigen.