Easy Coding
  Forum Wiki Tagging Projekte Karte RSS
» Start
» All Recent Changes
» Wiki Suche
» Wiki Hilfe

Coder How To's

Algorithmen Informationen

edit SideBar

Neue Wiki Eintrage finden Sie unter easy-coding.de/wiki.

C++ Inline Funktionen

In C++ kann die Effizienz eines Makros mit dem vorhersagbaren Verhalten und der Typsicherheit einer normalen Funktion kombiniert werden. Dies geschieht durch inline Funktionen

inline.cpp
  1. inline int max(int a, int b) {
  2.     return a > b ? a : b;
  3. }

Bei einer normalen Funktion wird der Funktionscode während des Compilierens nur einmal erstellt und immer wieder referenziert. Wird die Funktion aufgerufen finden also immer Sprünge zu dieser Referenz statt. Das spart Speicher. Weniger Speicherverbrauch führt meistens zu einer besseren Performance.

Im Inline-Beispiel wird aber nur simpler Vergleich durchgeführt. Lohnt es sich hier Speicher zu sparen und dafür häufige Sprünge in Kauf zu nehmen? Eher nicht. Daher fügt der Compiler bei Funktionen mit dem Schlüsselwort inline die Funktion direkt im Assembler Code ein.

Warum also nicht direkt den Methodenkörper in den C++ Code schreiben? Weil man Funktionen besser verwalten kann und man durch das Schlüsselwort inline keine Nachteile mehr hat.

Zuletzt geändert am 26.01.2008 14:42 Uhr
  Impressum