Programmiersprache C/C++
Inline-Funktionen
Das Konzept der strukturierten Programmierung führt zu einer
umfangreichen Arbeit mit Funktionen. Den damit verbundenen Vorteilen steht
ein Nachteil gegenüber:
Es entsteht ein Laufzeitaufwand für Funktionsaufruf, Parametervermittlung
und Wertrückgabe.
Bei sehr kurzen Funktionen kann dieser "Overhead" wesentlich werden im
Vergleich zum Aufwand für die Abarbeitung der eigentlichen Funktion.
Zur Lösung dieses Konflikts bieten sich folgende Kompromisse an:
-
C
Verwendung von Makros
Nachteil: keine Typüberprüfung bei der Benutzung solcher
"Funktionen"
-
C++
Inline-Funktionen
werden vom Compiler - unter Einschluß der Typüberprüfung -
an allen Aufrufstellen textlich ersetzt
Ab einer gewissen Komplexität kann ein C++-Compiler die
Inline-Aufforderung zurückweisen: Die Funktion wird wie eine normale
Funktion behandelt.
Dies ist zum Beispiel generell bei rekursiven Aufrufen der Fall.
Beispiel:
Makro
#define max(a,b) (((a) > (b)) ? (a) : (b))
Inline-Funktion
inline int max(int a, int b)
{
return ( a > b ) ? a : b;
}
Zurück zum Menü
Zurück zur vorigen Seite
Weiter zur nächsten Seite
P. Böhme, 17.12.1995