Functii inline

Directiva inline poate fi inclusa inaintea declaratiei unei functii pentru a specifica ca functia trebuie compilata astfel incat codul ei sa fie generat in punctul in care ea este apelata. Directiva inline declansaza un mecanism analog declaratii unui macro. Aceasta directiva permite cresterea vitezei de executie prin evitarea generarii codului pentru apel si return precum si a codului de introducere si extragere din stiva a parametrilor functiei.

Sintaxa acestei declaratii este:

inline type name ( arguments ... ) { instructions ... }

iar apelul este identic cu apelul oricarei alte functii. Nu este necesara adaugarea cuvantului cheie inline inaintea fiecarui apel, ci numai in declararea functiei.

Exemplul urmator ilustreaza folosirea declaratiei inline.

#include <iostream.h>
//53905 lungimea codului cu inline
//53897 fara inline
inline int Double(int target)//nu merge cu declararea functiei inainte de main si definirea dupa main
{
return 2*target;
}

int main()
{
int target;

cout << "Enter a number to work with: ";
cin >> target;
cout << "\n";

target = Double(target);
cout << "Target: " << target << endl;

target = Double(target);
cout << "Target: " << target << endl;

target = Double(target);
cout << "Target: " << target << endl;
return 0;
};

Un exemplu de executie a acestui cod conduce la urmatorul rezultat.

Enter a number to work with: 23

Target: 46
Target: 92
Target: 184

 

Cornel Mironel Niculae, 2003-2004

04-Mar-2004