Diferència entre enquadernació estàtica i dinàmica
![Diferència entre enquadernació estàtica i dinàmica - Tecnologia Diferència entre enquadernació estàtica i dinàmica - Tecnologia](https://a.fondoperlaterra.org/technology-differences/difference-between-static-and-dynamic-binding.jpg)
Content
- Gràfic de comparació:
- Definicions de Static Binding
- Implantació d’unió estàtica en C ++ amb un exemple de sobrecàrrega
- Conclusió:
L'associació vinculada d'una "definició de funció" a una "trucada de funció" o una associació d'un "valor" a una "variable" s'anomena "vinculació". Durant la compilació, a cada "definició de funció" se li proporciona una adreça de memòria; Tan aviat com es fa la trucada de funcions, el control de l’execució del programa es trasllada a l’adreça de memòria i s’executa el codi de funció emmagatzemat en aquella ubicació, això és el lligament de la “trucada de funció” a la “definició de la funció”. L’enquadernació es pot classificar com a “enquadernació estàtica” i “enquadernació dinàmica”.
Si ja se sabia abans del temps d'execució, quina funció s'invocarà o quin valor s'atribuirà a una variable, es tracta d'una "vinculació estàtica". si es coneix en el temps d'execució, s'anomena "vinculació dinàmica".
- Gràfic de comparació
- Definició
- Diferències claus
- Conclusió
Gràfic de comparació:
Bases per a la comparació | Enquadernació estàtica | Enquadernació dinàmica |
---|---|---|
Esdeveniment | Els esdeveniments que es produeixen en el moment de la compilació són "Enquadernació estàtica". | Els esdeveniments que es produeixen en temps d'execució són "Enquadernació dinàmica". |
Informació | Tota la informació necessària per trucar a una funció es coneix a l’hora de compilació. | Tota la informació necessària per trucar a una funció es coneix en temps d'execució. |
Avantatge | Eficiència. | Flexibilitat. |
Temps | Execució ràpida. | Execució lenta. |
Nom alternatiu | Enquadernació primerenca. | Enquadernació tardana |
Exemple | Trucada de funcions sobrecàrrega, operadors sobrecarregats | Funció virtual en C ++, mètodes anul·lats a java. |
Definicions de Static Binding
Quan el compilador reconeix tota la informació necessària per trucar a una funció o tots els valors de les variables durant el temps de compilació, s'anomena "vinculació estàtica“. Com que tota la informació requerida es coneix abans del temps d'execució, augmenta l'eficiència del programa i també millora la velocitat d'execució d'un programa.
La vinculació estàtica fa que el programa sigui molt eficient, però declina la flexibilitat del programa, ja que es defineixen predefinits "valors de la variable" i "trucada de funció" al programa. La vinculació estàtica està implementada en un programa en el moment de la codificació.
La sobrecàrrega d'una funció o d'un operador són l'exemple de polimorfisme en temps de compilació, és a dir, enllaç estàtic.
Implantació d’unió estàtica en C ++ amb un exemple de sobrecàrrega
#incloure Aquí el valor del punter canvia a mesura que el programa s'està executant i el valor del punter decideix quina funció de la classe s'invocarà. Així, aquí, la informació es proporciona en temps d'execució, triga un temps a unir les dades que alenteix l'execució. Tanmateix, arribem a la conclusió que quan tenim coneixement previ dels valors de la funció de trucada variable i aplicem la vinculació estàtica. Per contra, en enquadernació dinàmica, proporcionem tota la informació en el moment de l’execució.
Conclusió: