PROGRAMOWANIE I ALGORYTMY

Funkcje inline


powrót

Funkcje inline

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 jego opóźnienie. 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 wywołana (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 <iostream>
using namespace std;

inline double suma(double a,double b)
{
	return a+b;
}

int main()
{
	double 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;

	return 0;
}