Razlika med statičnim in dinamičnim vezanjem

Avtor: Laura McKinney
Datum Ustvarjanja: 1 April 2021
Datum Posodobitve: 17 Maj 2024
Anonim
8 Excelovih orodij, ki bi jih moral uporabljati vsak
Video.: 8 Excelovih orodij, ki bi jih moral uporabljati vsak

Vsebina


Vezava „definicije funkcije“ na „funkcijski klic“ ali povezavo „vrednosti“ s „spremenljivko“ se imenuje „vezava“. Med prevajanjem se vsaki 'definiciji funkcije' dodeli spominski naslov; Takoj, ko je klicanje funkcije opravljeno, se nadzor nad izvajanjem programa premakne na ta pomnilniški naslov in izvrši funkcijsko kodo, shranjeno na tem mestu, to je vezava funkcije klica na 'definicijo funkcije' Vezava se lahko razvrsti kot „statična vezava“ in „dinamična vezava“.

Če je pred izvajanjem že znano, katera funkcija se bo priklicala ali katera vrednost je dodeljena spremenljivki, potem je to "statična vezava". če se pozna med izvajanjem, se imenuje "dinamična vezava".

  1. Primerjalna tabela
  2. Opredelitev
  3. Ključne razlike
  4. Zaključek

Primerjalna tabela:

Osnove za primerjavoStatična vezavaDinamična vezava
Pojav dogodkaDogodki, ki se zgodijo v času prevajanja, so "statična vezava".
Dogodki, ki se zgodijo v času izvajanja, so "Dynamic Binding".
InformacijeVse informacije, potrebne za klic funkcije, so znane ob prevajanju.Vse informacije, ki jih je treba poklicati, se pozanimajo v času izvajanja.
PrednostUčinkovitost.Prilagodljivost
ČasHitra izvedba.Počasna izvedba.
Nadomestno imeZgodnja vezava.Pozno vezava.
PrimerPreobremenjen funkcijski klic, preobremenjeni operaterji.Navidezna funkcija v C ++, prevladajoče metode v javi.

Opredelitve statične vezave

Ko prevajalnik v času prevajanja potrdi vse informacije, potrebne za klic funkcije ali vse vrednosti spremenljivk, se imenuje „statična vezava". Ker so vse zahtevane informacije znane pred izvajanjem, to poveča učinkovitost programa in poveča hitrost izvajanja programa.


Statično vezanje naredi program zelo učinkovito, vendar zmanjšuje prilagodljivost programa, saj sta v programu vnaprej določene vrednosti spremenljivke in funkcijski klici. Statična vezava se izvaja v programu v času kodiranja.

Preobremenitev funkcije ali operaterja je primer polimorfizma v prevajalnem času, to je statične vezave.

Izvajanje statične vezave v C ++ s primerom preobremenitve

#include uporaba imenskega prostora std; preobremenitev razreda {int a, b; public: funkcija int load (int x) {// prva funkcija load (). a = x; cout << "Vrednost x je" <funct (); // Zgornji stavek določa, katere funkcije razredov naj se prikličejo. p = & d1; // Vlaue kazalca se spremeni. p-> funct (); // Zgornji stavek določa, katere funkcije razredov naj se prikličejo. p = & d2; // Spet se vlaue kazalca spremeni. p-> funct (); // Zgornji stavek določa, katere funkcije razredov naj se prikličejo. vrne 0; }

Tu se vrednost kazalca spreminja, ko se program izvaja in vrednost kazalca določa, katera funkcija razreda bo priklicana. Torej, tukaj so informacije na voljo v času izvajanja, potreben je čas, da se vežejo podatki, kar upočasni izvedbo.


  1. Dogodki, ki se zgodijo v času prevajanja, npr. Koda funkcije je povezana s klicem funkcije ali dodelitvijo vrednosti spremenljivki, imenujemo statična / zgodnja vezava. Nasprotno, ko se te naloge izvajajo med izvajanjem, jih imenujemo dinamična / pozna vezava.
  2. "Učinkovitost" se pri statičnem povezovanju poveča, saj se pred izvedbo zbirajo vsi podatki. Toda pri dinamičnem povezovanju se podatki pridobivajo med izvajanjem, tako da se lahko odločimo, kakšno vrednost dodeliti spremenljivki in katero funkcijo priklicati med izvajanjem, zaradi česar je izvedba „fleksibilna“.
  3. „Statična vezava“ izvedbo programa „hitreje“, saj so pred izvedbo znani vsi podatki, potrebni za izvedbo programa. Podatki o "dinamični vezavi", potrebni za izvedbo programa, so prevajalniku znani v času izvajanja, kar potrebuje čas, da vrednosti poveže z identifikatorji; zato izvajanje programa poteka počasneje.
  4. Statično vezavo imenujemo tudi zgodnja vezava, ker je funkcijska koda povezana s klicem funkcije med časom prevajanja, kar je prej kot dinamično Vezava, pri kateri je funkcijska koda med izvajanjem povezana s funkcijskim klicem, zato se imenuje tudi pozna vezava.

Zaključek:

Vendar sklepamo, da ko predhodno poznamo vrednosti klic spremenljivke in funkcije, uporabimo statično vezavo. Nasprotno, v dinamičnem vezavi zagotavljamo vse informacije v času izvedbe.