Inclusión de funciones recursivas
Es un error común pensar que las funciones recursivas no se pueden integrar. Sin embargo, los compiladores pueden incorporar funciones recursivas, aunque con ciertas consideraciones.
Calificador en línea versus optimización del compilador
El especificador en línea de una función es simplemente una pista para el compilador. El compilador tiene la última palabra sobre si insertar la función o no, independientemente del calificador incorporado.
Decisión de inserción del compilador
Un compilador decide si insertar una función en función en factores como:
Ejemplo de optimización integrada
Considere la siguiente función factorial recursiva:
inline int factorial(int n) {
if (n Un compilador optimizador podría potencialmente incorporar esta función a un cierto nivel, como se ve en el siguiente código optimizado:
int factorial(int n) {
if (n En este caso, el compilador ha desenrollado la función factorial tres veces, incorporando efectivamente una parte de las llamadas recursivas.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3