inline-Funktionen

Häufig braucht man auch teilweise sehr kleine Funktionen, wie z.B. die schon vorgestellte Funktion für die Berechnung eines Maximums. Diese lassen sich zwar problemlos programmieren, haben aber den Nachteil, daß das Programm für den Aufruf der Funktion schon Zeit verbraucht - gerade bei häufig benutzten Funktion sicherlich nicht wünschenswert, da spürbare Performanzverluste auftreten können.

Um dieses Problem zu umgehen, kann man verschiedene Ansätze wählen. Zum einen könnte man darauf verzichten, die Funktion zu schreiben und doch jedesmal den gleichen Programmteil hinschreiben - doch das ist doch sehr aufwendig und stupide. Eine andere Möglichkeit werden wir später mit den Makros kennenlernen, doch diese haben ihre eigenen Tücken, da sie auf Textersetzung basieren.

Eine wesentlich elegantere Möglichkeit ist es, dem Compiler anzugeben, daß er versuchen soll, die Funktion nicht wie eine normale Funktion zu behandeln, sondern direkt in den laufenden Code einzubauen. Damit spart man sich die Schreibarbeit, das Programm ist lesbarer, aber das Ergebnis ist dasselbe, als ob man die entsprechenden Befehle jedesmal hingeschrieben hätte. Die zugehörige Anweisung geht über das Schlüsselwort inline, am Beispiel mit dem Maximum (wo es sehr sinnvoll ist):

  inline int maximum(int a, int b)
  {
    return (a>b)?a:b;
  } 

Dabei sollte man allerdings ein paar Dinge beachten: