¡Sí, mejoran el rendimiento de su programa!
Cuando la función se define en línea, el cuerpo de esa función se sustituye con esa llamada de función con algunos cambios para los argumentos y esas cosas al compilar el programa.
Entonces, si define la función en línea para agregar dos números ayb en c ++, su función se verá como se muestra a continuación:
- ¿Por qué no hay ningún campo de programación o desarrollo como Hack Reactor, Dev Bootcamp, Bloc, etc. en Montreal, Quebec?
- ¿Qué es mejor para los menús desplegables, CSS + jQuery o Pure CSS?
- ¿Cuál es la diferencia entre CPanel y DirectAdmin?
- ¿Cuáles son las ventajas y desventajas de usar jQuery sobre la Biblioteca de cierre (Google)?
- Cómo hacer que un sitio web independiente de desarrollo se vea bien y no sea aburrido
inline int sum (int a, int b) {
devuelve a + b;
}
int main () {
cout << add (5, 3);
cout << add (8,4);
}
se convertirá a:
int main () {
cout << 5 + 3;
cout << 8 + 4;
}
mientras compila el programa.
Ahora, ¿cómo puede esto mejorar el rendimiento? Cuando llamamos a una función, se realiza un trabajo adicional debajo del capó antes de ejecutar realmente la función. Todas las computadoras tienen registros para almacenar los valores de las variables. Solo estas variables se usan al realizar cualquier operación, no puede realizar directamente la operación aritmética en variables almacenadas en la memoria principal. Entonces, cuando se llama a una función, los valores de todos los registros para la función que llamó a la función add () se almacenarán en la pila en la memoria principal. Después de eso, los argumentos y las variables locales para la función add () se almacenan en la pila en la memoria principal. Y cuando todo esté completo, el programa real comenzará a ejecutarse.
Como el compilador sustituye el código de la función donde se llama a esa función como se muestra arriba, se evita la sobrecarga adicional al llamar a la función, lo que mejora el rendimiento del programa.
Esta es también la razón por la cual el programador recomienda una solución basada en bucle sobre una solución recursiva para cualquier problema, ya que la solución recursiva tendrá una sobrecarga de llamadas a funciones y también la pila para almacenar el valor de registro para todas las funciones es limitada. Si su recursión es muy profunda, existe una alta posibilidad de que sufra el problema del desbordamiento de la pila.