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.