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.