lunes, 22 de noviembre de 2010

Funciones Inline

Las funciones declaradas como inline sugieren al compilador una optimización que puede que él haga o no. La llamada a una función suele requerir un tiempo extra de ejecución, es por eso que algunas funciones pequeñas que suelen usarse muchas veces en un programa son declaradas de manera inline que sugiere al compilador que copie el código de la función y lo reemplaze por cada llamada a la función.

Un ejemplo de Inline

inline void funcion() //se agrega la palabra inline
{
  cout << "Hola" << endl;
}
 
Y luego tenemos un programa que hace la llamada a la función:
 
int main()
{
  funcion();
  funcion();
  funcion();
}
 
Si el compilador acepta poner a 

funcion() 

de manera a 

inline

El programa anterior se transformaría en algo parecido a esto:  

int main()
{
  cout
<< "Hola" << endl;
  cout
<< "Hola" << endl;
  cout
<< "Hola" << endl;
}

Ejemplo de la Utilización de inline

#include <iostream>
using std::cout;
using std::endl;
using std::cin;
//funcion INLINE.
inline int Comparar(int num1, int num2)
{
  if (num1 == num2)
    return 0;
  if (num1 > num2)
    return 1;
  return -1;
}
int main()
{
  int ent1,ent2;
  cout << "Entero 1: ";
  cin >> ent1;
  cout << "Entero 2: ";
  cin >> ent2;
  cout << "Comparacion: " << Comparar(ent1,ent2) << endl;
}
  
 
Una recomendación es que inline debe utilizarse solo con pequeñas 
funciones que se utilicen con frecuencia, cuando utilizamos funciones 
inline se puede reducir el tiempo de ejecución pero incrementar 
el tamaño del programa.
 
Referencias:
Referencia 1 
Referencia 2 
 
 

1 comentario: