Hvað er statísk úthlutun?

Þegar þú skrifar tölvukóða er margt sem þarf að skilja. Hvert forritunarmál er öðruvísi, með sitt eigið sett af setningafræði og uppbyggingu. Eitt af því sem er algengt í mörgum forritunarmálum er þörfin á að stilla breytur. Breytur geyma gögn á þann hátt sem hægt er að vísa til í framtíðinni.

Þú getur úthlutað mismunandi gildum á breytu, svo sem textastrengi, tölur eða fjölda gagna, ásamt mörgu öðru. Mörg tungumál krefjast þess að þú lýsir því yfir hvers konar gögn verða geymd í breytu sem takmarkar þig við aðeins tölur, til dæmis.

Annað sem er mismunandi á milli forritunarmála er þörfin á að lýsa yfir úthlutunartegund breytu. Sum tungumál krefjast þess ekki, á meðan önnur eru ströng. Það eru tvær helstu úthlutunargerðir: Static og Dynamic.

Static vs Dynamic

Stöðug breyta er breyta sem hefur stærð hennar ákvörðuð áður en forritið er keyrt. Það er stillt á þýðandatíma af þýðandanum. Til dæmis er hægt að skilgreina streng sem hefur endanlega lengd. Minnisplássið sem þarf til að geyma langan streng er síðan úthlutað með kyrrstöðu af þýðandanum.

Valkosturinn er kraftmikil úthlutun. Hér er stærð breytunnar stillt af forritinu þegar það keyrir. Forritið inniheldur rökfræði til að stilla magn af minni sem er úthlutað til breytunnar, sem gerir það kleift að breytast með tímanum ef meira eða minna pláss er þörf. Þetta býður venjulega upp á meiri sveigjanleika í minnisnotkun en kyrrstöðuúthlutun en kostar þónokkuð afköst. Einn helsti kosturinn við kraftmikla úthlutun er að ekki þarf að úthluta henni fyrr en þörf er á. Hægt er að losa minnið þegar það er ekki lengur þörf, jafnvel þótt forritið sé enn í gangi.

Breytur sem eru úthlutaðar á kyrrstöðu eru varanlega geymdar í minni. Það er ekki þar með sagt að forritið geti ekki breytt gildinu sem geymt er í breytunni. Þess í stað þýðir það að minnismagnið sem breytan tekur upp er aldrei hægt að breyta. Jafnvel þótt þú breytir breytunni úr stóru gildi í lítið, geturðu ekki losað neitt af því núna óþarfa minnisrými. Þú getur heldur ekki aukið plássið sem er í boði. Þetta getur verið vandamál ef breytan er ætluð til að geyma breytilega lengd notendainntak.

Aðgerðir og undirvenjur

Statískar breytur eru geymdar í stafla frekar en hrúgunni. Þetta þýðir að þeir eru áfram tiltækir í því tilviki sem þeir voru búnir til. Stöðugt úthlutaðar breytur í meginhluta forrits haldast í gildi og í minni allan tímann sem forritið er í gangi. Þetta er vegna þess að stafli forritsins er alltaf til staðar. Þegar sérstakt fall eða flokkur er kallaður fær það skrána sína á staflann þar sem hægt er að geyma nýjar statískt úthlutaðar breytur. Hægt er að losa minnið fyrir þessar breytur þegar bekknum er lokað, þar sem skráin er tekin af staflanum.

Niðurstaða

Stöðug úthlutun er að úthluta minnisrými fyrir breytu - þýðandinn læsir því magni sem þarf á þýðingu. Þó að gildi breytunnar geti breyst, getur plássið sem henni er úthlutað ekki. Þessi takmörk koma í veg fyrir að pláss losni ef þess er ekki þörf. Það kemur einnig í veg fyrir að meira pláss sé gert tiltækt ef þess er þörf. Stöðug úthlutun hefur frammistöðukostur fram yfir kraftmikla úthlutun en er minna sveigjanleg. Venjulega eru bæði truflanir og kvikar breytur notaðar þar sem þær bjóða báðar upp ávinning.


Hvernig á að klóna harðan disk

Hvernig á að klóna harðan disk

Í nútíma stafrænni öld, þar sem gögn eru dýrmæt eign, getur klónun á harða diskinum á Windows verið mikilvægt ferli fyrir marga. Þessi alhliða handbók

Hvernig á að laga bílstjóri WUDFRd tókst ekki að hlaðast á Windows 10?

Hvernig á að laga bílstjóri WUDFRd tókst ekki að hlaðast á Windows 10?

Stendur þú frammi fyrir villuboðunum þegar þú ræsir tölvuna þína sem segir að bílstjóri WUDFRd hafi ekki hlaðast á tölvuna þína?

Hvernig á að laga NVIDIA GeForce Experience villukóða 0x0003

Hvernig á að laga NVIDIA GeForce Experience villukóða 0x0003

Ertu með NVIDIA GeForce reynslu villukóða 0x0003 á skjáborðinu þínu? Ef já, lestu bloggið til að finna hvernig á að laga þessa villu fljótt og auðveldlega.

Hvað er SMPS?

Hvað er SMPS?

Lærðu hvað er SMPS og merkingu mismunandi skilvirknieinkunna áður en þú velur SMPS fyrir tölvuna þína.

Af hverju er ekki kveikt á Chromebook

Af hverju er ekki kveikt á Chromebook

Fáðu svör við spurningunni: Af hverju kveikir ekki á Chromebook? Í þessari gagnlegu handbók fyrir Chromebook notendur.

Hvernig á að tilkynna vefveiðar til Google

Hvernig á að tilkynna vefveiðar til Google

Lærðu hvernig á að tilkynna svindlara til Google til að koma í veg fyrir að hann svindli aðra með þessari handbók.

Roomba stoppar, stingur og snýr við – laga

Roomba stoppar, stingur og snýr við – laga

Lagaðu vandamál þar sem Roomba vélmenni ryksuga þín stoppar, festist og heldur áfram að snúa sér.

Hvernig á að breyta grafíkstillingum á Steam Deck

Hvernig á að breyta grafíkstillingum á Steam Deck

Steam Deckið býður upp á öfluga og fjölhæfa leikjaupplifun innan seilingar. Hins vegar, til að hámarka leikina þína og tryggja það besta mögulega

Hvað er einangrunarbundið öryggi?

Hvað er einangrunarbundið öryggi?

Ætluðum að kafa ofan í efni sem er að verða sífellt mikilvægara í heimi netöryggis: einangrunarbundið öryggi. Þessi nálgun við

Hvernig á að nota Auto Clicker fyrir Chromebook

Hvernig á að nota Auto Clicker fyrir Chromebook

Ætluðum í dag að kafa ofan í tól sem getur gert sjálfvirkt endurtekin smellaverkefni á Chromebook þinni: Auto Clicker. Þetta tól getur sparað þér tíma og