Hva er statisk tildeling?

Når du skriver datakode, er det mange ting å forstå. Hvert programmeringsspråk er forskjellig, med sitt eget sett med syntaks og strukturer. En av tingene som er felles på tvers av mange programmeringsspråk er behovet for å angi variabler. Variabler lagrer data på en måte som kan refereres til i fremtiden.

Du kan tilordne forskjellige verdier til en variabel, for eksempel tekststrenger, tall eller en rekke data, blant mange andre ting. Mange språk krever at du erklærer hvilken type data som vil bli lagret i en variabel som begrenser deg til bare tall, for eksempel.

En annen ting som er forskjellig mellom programmeringsspråk er behovet for å deklarere allokeringstypen til en variabel. Noen språk krever ikke dette, mens andre er strenge. Det er to hovedallokeringstyper: Statisk og Dynamisk.

Statisk vs. Dynamisk

En statisk variabel er en variabel som har sin størrelse bestemt før applikasjonen noen gang kjøres. Den er satt til kompileringstidspunktet av kompilatoren. For eksempel kan en streng defineres som har en definitiv lengde. Minneplassen som trengs for å lagre en lang streng blir deretter statisk allokert av kompilatoren.

Alternativet er dynamisk allokering. Her er størrelsen på variabelen satt av programmet mens den kjører. Programmet inneholder logikk for å justere mengden minne som er allokert til variabelen, slik at den kan endres over tid hvis det trengs mer eller mindre plass. Dette gir vanligvis mer fleksibilitet i minnebruk enn statisk tildeling, men kommer til litt av en ytelseskostnad. En av hovedfordelene med dynamisk allokering er at den ikke trenger å bli allokert før den er nødvendig. Minnet kan frigjøres når det ikke lenger er nødvendig, selv om programmet fortsatt kjører.

Variabler som er statisk allokert lagres permanent i minnet. Det er ikke dermed sagt at programmet ikke kan endre verdien som er lagret i variabelen. I stedet betyr det at mengden minne som variabelen tar opp aldri kan endres. Selv om du endrer variabelen fra en stor verdi til en liten, kan du ikke frigjøre noe av den nå unødvendige minneplassen. Du kan heller ikke øke mengden ledig plass. Dette kan være et problem hvis variabelen er ment å lagre brukerinndata med variabel lengde.

Funksjoner og underrutiner

Statiske variabler lagres i stabelen i stedet for haugen. Dette betyr at de forblir tilgjengelige i forekomsten de ble opprettet i. Statisk tildelte variabler i hoveddelen av et program forblir gyldige og i minnet hele tiden applikasjonen kjører. Dette er fordi applikasjonens stabel alltid er der. Når en egen funksjon eller klasse kalles, får den sin post på stabelen der nye statisk allokerte variabler kan lagres. Minnet for disse variablene kan frigjøres når klassen er stengt, ettersom posten hoppes av stabelen.

Konklusjon

Statisk tildeling er å allokere minneplass for en variabel – kompilatoren låser mengden plass som trengs på kompileringstidspunktet. Selv om variabelens verdi kan endres, kan ikke mengden plass som er tildelt den. Denne grensen hindrer plass i å bli frigjort hvis det ikke er nødvendig. Det forhindrer også at mer plass blir tilgjengelig hvis det er nødvendig. Statisk tildeling har en ytelsesfordel fremfor dynamisk tildeling, men er mindre fleksibel. Vanligvis brukes både statiske og dynamiske variabler, da de begge gir fordeler.


Leave a Comment

Slik installerer du en SSD på stasjonære og bærbare PC-er

Slik installerer du en SSD på stasjonære og bærbare PC-er

Har du nettopp kjøpt en SSD og håper å oppgradere den interne lagringen på PC-en din, men vet ikke hvordan du installerer SSD? Les denne artikkelen nå!

Grunnleggende om 3D-utskrift: En viktig vedlikeholdssjekkliste

Grunnleggende om 3D-utskrift: En viktig vedlikeholdssjekkliste

Å holde utstyret ditt i god stand er et must. Her er noen nyttige tips for å holde 3D-printeren din i topp stand.

10 Beste NAS-lagringsenheter for hjem og profesjonell bruk

10 Beste NAS-lagringsenheter for hjem og profesjonell bruk

Enten du leter etter en NAS for hjemmet eller kontoret, sjekk ut denne listen over de beste NAS-lagringsenhetene.

Hvordan finne IP-adressen til en skriver

Hvordan finne IP-adressen til en skriver

Har du problemer med å finne ut hvilken IP-adresse skrivere bruker? Vi viser deg hvordan du finner den.

5 Grunner til at Laptopen Din Overopphetes

5 Grunner til at Laptopen Din Overopphetes

Finn ut noen av de mulige årsakene til at laptopen din overopphetes, sammen med tips og triks for å unngå dette problemet og holde enheten din avkjølt.

Hva du skal gjøre hvis Powerbeats Pro ikke lader i saken

Hva du skal gjøre hvis Powerbeats Pro ikke lader i saken

Hvis Powerbeats Pro ikke lader, bruk en annen strømkilde og rengjør øreproppene. La saken være åpen mens du lader øreproppene.

Grunnleggende om 3D-utskrift: Vedlikeholdstips for 3D-printeren din

Grunnleggende om 3D-utskrift: Vedlikeholdstips for 3D-printeren din

Å vedlikeholde 3D-printerne dine er veldig viktig for å få de beste resultatene. Her er noen viktige tips å huske på.

Slik fikser du GeForce Now feilkode 0xC272008F

Slik fikser du GeForce Now feilkode 0xC272008F

Du gjør deg klar for en kveld med spilling, og det kommer til å bli stort – du har nettopp kjøpt "Star Wars Outlaws" på GeForce Now streamingtjenesten. Oppdag den eneste kjente løsningen som viser deg hvordan du fikser GeForce Now feilkode 0xC272008F, slik at du kan begynne å spille Ubisoft-spill igjen.

Slik bruker du AirPods med Samsung-telefoner

Slik bruker du AirPods med Samsung-telefoner

Er du usikker på om du skal kjøpe AirPods til din Samsung-telefon? Denne guiden vil helt klart hjelpe. Det mest åpenbare spørsmålet er om de to er

Canon Pixma MG5220: Skann uten blekk

Canon Pixma MG5220: Skann uten blekk

Hvordan aktivere skanning på Canon Pixma MG5220 når du går tom for blekk.