inline ist ein Hinweis an den Compiler, den Funktionsrumpf einzusetzen. Das kann, richtig angewandt, beträchtliche Laufzeitgewinne bringen. Preis: höherer Speicherbedarf.
Vorsicht: Wenn der Compiler beschließt, nicht zu ``inlinen'', kann es auch zusätzlichen Platz kosten:
// examp.h
inline void fun() { ... }
// source1.cc
#include "examp.h
...
// source2.cc
#include "examp.h
...
Sowohl source1.o also auch source2.o enthalten den Code von fun() (als static Funktionen wg. Linker).
Es kann sogar sein, daß eine Funktion ``geinlined'' wird und zusätzlich als aufrufbare Funktion im Code steht:
inline void fun() { ... }
void (*pf)() = fun;
int main()
{ fun(); // inline
pf(); // non-inline
}
Tip:
Am Anfang der Programmentwicklung keine Funktionen ``inlinen'' (bzw. nur wirklich elementare). Dies hilft beim Debuggen.
Später zum Tuning die Funktionen in zeitkritischen Bereichen evtl. inline deklarieren.