Einführung in die Programmiersprache C++
6. Funktionen
6.6 Inline-Funktionen

Oft sind Funktionen sehr einfach, wie auch in den vorangegangenen Beispielen zu sehen war. Der für den Funktionsaufruf notwendige Programmcode kostet bei kleinen Funktionen oft mehr Rechenzeit und Speicherplatz als die Funktion selbst.
 
Deshalb wurde früher in C/ISO-C die Makrosubstitution zur Verfügung gestellt, die zur Substitution eines Makroaufrufs mit den auszuführenden Anweisungen auf Quelltextniveau führt (siehe Kapitel 7).
 
 
Hinweis
Das Problem ist, dass der Makroaufruf zwar wie ein Funktionsaufruf aussieht, aber nicht die behandelten Parameterübergabemethoden der Funktionen zur Verfügung stellen kann. Häufig kommt es deshalb bei Anwendung der Makrotechnik zu syntaktischen, aber auch semantischen Fehlern.
 
ISO-C++ stellt deshalb die Möglichkeit zur Verfügung, Funktionen als inline zu deklarieren. Der Compiler betrachtet dies als Hinweis des Programmierers, den Programmcode der Funktion bei jedem Aufruf direkt einzufügen, wodurch der Programmcode für den klassischen Funktionsaufruf überflüssig wird. Diese inline-Substitution geht natürlich auf Kosten des Speicherplatzes. Deshalb ist der Compiler nicht in jedem Fall verpflichtet, die inline-Substitution anzuwenden.
 
Bei extrem kurzen Funktionen kann das Programm nach der inline-Substitution auch kürzer werden, da der Programmcode für die Funktionsaufrufe eingespart wird.
 
Die inline-Substitution ist für den Programmierer transparent. inline-Funktionen haben aber gemäß Sprachdefinition ein internes Linkage.
 
Generiert am: