Programowanie i algorytmy

Funkcje inline

powrót

Tworzenie funkcji w C++ wiąże się z przydzieleniem pamięci w innym segmencie niż program główny. Oznacza to, że podczas wywoływania funkcji, program musi przeskoczyć w to miejsce, czego konsekwencją jest nieznaczne opóźnienie programu. Jeśli programiście zależy, aby program był szybki, można stworzyć funkcję inline (w lini).

Funkcje inline możemy rozumieć w ten sposób, że kod tej funkcji jest "wklejany" w miejsce, gdzie została ona wykonana (pracujemy wtedy na tym samym segmencie pamięci, oszczędzając czas). Funkcje tego typu tworzy się zazwyczaj dla krótkich kilku linijkowych funkcji. Jeśli kompilator uzna, że dany podprogram nie kwalifikuje się jako inline, to słowo inline zostanie zignorowane.

Słowo kluczowe inline wstawiamy przed typem funkcji:

inline int funkcja(argumenty);

inline void innafunkcja(argumenty);

itd.

Dla przykładu napiszemy funkcję sumującą dwie liczby:

#include <cstdlib>
#include <iostream>
 
using namespace std;
 
inline float suma(float a,float b)
{
  return a+b;
}
 
int main()
{
  float a,b;
 
  cout<<"Podaj dwie liczby: ";
  cin>>a>>b;
 
  cout<<"Suma liczb "<<a<<" i "<<b<<" wynosi: "<<suma(a,b)<<endl;
 
  //w tym przypadku wywołanie funkcji suma jest równoważne z zapisem
  //cout<<"Suma liczb "<<a<<" i "<<b<<" wynosi: "<<a+b<<endl;
 
  system("pause");
  return 0;
}