Diferencia entre enlace estático y dinámico
Contenido
- Cuadro comparativo:
- Definiciones de enlace estático
- Implementación de enlace estático en C ++ con un ejemplo de sobrecarga
- Conclusión:
La asociación de enlace de una "definición de función" a una "llamada de función" o una asociación de un "valor" a una "variable" se denomina "enlace". Durante la compilación, cada "definición de función" recibe una dirección de memoria; tan pronto como se realiza la llamada a la función, el control de la ejecución del programa se mueve a esa dirección de memoria y se ejecuta el código de la función almacenado en esa ubicación, esto es Enlace de "llamada de función" a "definición de función". El enlace se puede clasificar como "enlace estático" y "enlace dinámico".
Si ya se conoce antes del tiempo de ejecución, qué función se invocará o qué valor se asigna a una variable, entonces es un "enlace estático". si se llega a saber en tiempo de ejecución, se llama "enlace dinámico".
- Cuadro comparativo
- Definición
- Diferencias clave
- Conclusión
Cuadro comparativo:
Bases para la comparación | Enlace Estático | Enlace Dinámico |
---|---|---|
Evento ocurrencia | Los eventos que se producen en tiempo de compilación son "Enlace estático". | Los eventos que se producen en tiempo de ejecución son "Enlace dinámico". |
Información | Toda la información necesaria para llamar a una función se conoce en tiempo de compilación. | Toda la información necesita llamar a una función que se conoce en tiempo de ejecución. |
Ventaja | Eficiencia. | Flexibilidad. |
Hora | Ejecución rápida | Ejecución lenta |
Nombre alternativo | Enlace temprano. | Enlace tardío. |
Ejemplo | Llamada de función sobrecargada, operadores sobrecargados. | Función virtual en C ++, métodos anulados en java. |
Definiciones de enlace estático
Cuando el compilador reconoce toda la información requerida para llamar a una función o todos los valores de las variables durante el tiempo de compilación, se llama "enlace estático". Como toda la información requerida se conoce antes del tiempo de ejecución, aumenta la eficiencia del programa y también mejora la velocidad de ejecución de un programa.
El enlace estático hace que un programa sea muy eficiente, pero disminuye la flexibilidad del programa, ya que los "valores de la variable" y la "llamada a función" están predefinidos en el programa. El enlace estático se implementa en un programa en el momento de la codificación.
La sobrecarga de una función u operador es el ejemplo de polimorfismo en tiempo de compilación, es decir, enlace estático.
Implementación de enlace estático en C ++ con un ejemplo de sobrecarga
#incluir Aquí el valor del puntero cambia a medida que el programa está en ejecución y el valor del puntero decide qué función de clase se invocará. Entonces, aquí, la información se proporciona en tiempo de ejecución, lleva tiempo vincular los datos que ralentiza la ejecución. Sin embargo, concluimos que cuando tenemos un conocimiento previo de los valores de las llamadas a variables y funciones, aplicamos el enlace estático. Por el contrario, en el enlace dinámico, proporcionamos toda la información en el momento de la ejecución.
Conclusión: