inline-Funktionen

In C++ kann man eine Funktion als inline deklarieren. Das bedeutet, daß der Compiler -wenn er will- dafür gar keine eigene Funktion erzeugt, sondern den entsprechenden Maschinencode direkt an der Aufrufstelle einfügt.

Dadurch kann ein Programm schneller werden, aber unter Umständen auch größer (wenn die ,,Funktion`` an vielen Stellen aufgerufen wird). Der Compiler wird deshalb nicht beliebig komplexe und lange Funktionen tatsächlich inline kompilieren, sondern nur kurze, einfache. Es steht jedem Compiler frei, selbst zu entscheiden, welche Funktionen er so behandelt.

Die Tatsache, daß unter Umständen gar keine echte Funktion existiert, hat natürlich zur Folge, daß man die Adresse einer inline-Funktionen nicht bestimmen kann.

Außerdem muß der Compiler in jedem betroffenen Modul die vollständige Definition einer solchen Funktion sehen können, weil er sie ja sonst nicht expandieren kann. Daher kommt -bei einer Aufteilung in eine Deklarationsdatei und eine Definitionsdatei- eine normale Funktionsdefinition zwar in die Definitionsdatei, die Definition einer inline-Funktion dagegen in die Deklarationsdatei, weil die ja von allen Anwendern der Funktion eingebunden wird.



AnyWare@Wachtler.de