Staatilise ja dünaamilise sidumise erinevus

Autor: Laura McKinney
Loomise Kuupäev: 1 Aprill 2021
Värskenduse Kuupäev: 1 Juuli 2024
Anonim
Staatilise ja dünaamilise sidumise erinevus - Tehnoloogia
Staatilise ja dünaamilise sidumise erinevus - Tehnoloogia

Sisu


Funktsiooni määratluse sidumist funktsiooni kõnega või väärtuse seostamist muutujaga nimetatakse sidumiseks. Kompileerimise ajal antakse igale funktsiooni määratlusele mäluaadress; niipea kui funktsioonikõned on tehtud, liigub programmi täitmise kontroll sellele mäluaadressile ja sellesse kohta salvestatud funktsioonikood käivitatakse, see on funktsiooni kõne sidumine funktsiooni määratlusega. Köitmise võib liigitada staatiliseks köitmiseks ja dünaamiliseks köitmiseks.

Kui see on juba enne tööaega teada, milline funktsioon käivitatakse või milline väärtus on muutujale määratud, on see staatiline sidumine. kui sellest saab teada rakenduse ajal, nimetatakse seda dünaamiliseks köitmiseks.

  1. Võrdlusdiagramm
  2. Definitsioon
  3. Peamised erinevused
  4. Järeldus

Võrdlusdiagramm:

Võrdluse alusStaatiline köitmineDünaamiline köitmine
Ürituse toimumineKompileerimise ajal toimuvad sündmused on "Staatiline sidumine".
Käituse ajal toimuvad sündmused on "dünaamiline sidumine".
TeaveKogu funktsiooni kutsumiseks vajalik teave on kompileerimise ajal teada.Kogu funktsiooni kutsumiseks vajalik teave on teada jooksval ajal.
EelisTõhusus.Paindlikkus.
AegKiire täitmine.Aeglane täitmine.
Alternatiivne nimiVarane köitmine.Hiline köitmine.
NäideÜlekoormatud funktsioonikõne, ülekoormatud operaatorid.Virtuaalne funktsioon C ++-s, javas ületatud meetodid.

Staatilise köitmise määratlused

Kui kompilaator aktsepteerib kogu funktsiooni kutsumiseks vajalikku teavet või kõiki muutujate väärtusi kompileerimise ajal, nimetatakse seda “staatiline sidumine“. Kuna kogu vajalik teave on teada enne tööaega, suurendab see programmi tõhusust ja suurendab ka programmi täitmise kiirust.


Staatiline köitmine muudab programmi väga tõhusaks, kuid see vähendab programmi paindlikkust, kuna programmis on eelnevalt määratletud muutuja väärtused ja funktsiooni kutsumine. Staatiline köide rakendatakse programmis kodeerimise ajal.

Funktsiooni või operaatori ülekoormamine on näide kompileerimisaja polümorfismist, st staatilisest sidumisest.

Staatilise sidumise rakendamine C ++ näites ülekoormusest

# kaasata nimeruumi std kasutamine; klassi ülekoormus {int a, b; avalik: int load (int x) {// esimene laadimine () funktsioon. a = x; cout << "x väärtus on" <funkt (); // Ülaltoodud avaldus otsustab, millise klassi funktsiooni tuleb kasutada. p = & d1; // Kursori osavus muutub. p-> funktsioon (); // Ülaltoodud avaldus otsustab, millise klassi funktsiooni tuleb kasutada. p = & d2; // Jällegi muutub kursori vlaue. p-> funktsioon (); // Ülaltoodud avaldus otsustab, millise klassi funktsiooni tuleb kasutada. tagasi 0; }

Siin muutub kursori väärtus programmi käivitamisel ja osuti väärtus otsustab, millise klassi funktsiooni kutsutakse. Nii et siin antakse teavet käitamisajal, andmete sidumiseks kulub aeg, mis aeglustab täitmist.


  1. Kompileerimise ajal aset leidvaid sündmusi, nagu funktsioonikood on seotud funktsioonikõnega või muutujale väärtuse määramisega, nimetatakse staatiliseks / varajaseks köitmiseks. Vastupidi, kui need ülesanded teostatakse töö ajal, nimetatakse neid dünaamiliseks / hiliseks sidumiseks.
  2. 'Efektiivsus' suureneb staatilise köitmise korral, kuna kõik andmed kogutakse enne täitmist. Kuid dünaamilises köitmises omandatakse andmed käitustõmbel, nii et saame otsustada, millise väärtuse muutujale omistada ja millist funktsiooni käivitada käivitusaeg, see muudab täitmise paindlikuks.
  3. Staatiline sidumine muudab programmi täitmise kiiremaks, kuna kõik programmi täitmiseks vajalikud andmed on enne täitmist teada. Dünaamilises köites on programmi täitmiseks vajalikud andmed kompilaatorile teada täitmise ajal, mis võtab aega identifikaatorite väärtuste sidumiseks; seetõttu muudab see programmi täitmise aeglasemaks.
  4. Staatilist köitmist nimetatakse ka varaseks sidumiseks, kuna funktsioonikood seostatakse funktsioonikõnega kompileerimise ajal, mis on varasem kui dünaamiline köitmine, kus funktsioonikood seostatakse funktsioonikõnega töö ajal, seetõttu nimetatakse seda ka hiliseks sidumiseks.

Järeldus:

Siiski järeldame, et kui meil on eelteadmised muutujate ja funktsioonide kutsumise väärtustest, rakendame staatilist sidumist. Ja vastupidi, dünaamilises köites anname kogu teabe täitmise ajal.