Kan vi bruke statisk og flyktig sammen i C?
Kan vi bruke statisk og flyktig sammen i C?

Video: Kan vi bruke statisk og flyktig sammen i C?

Video: Kan vi bruke statisk og flyktig sammen i C?
Video: ТАКОВ МОЙ ПУТЬ В L4D2 2024, November
Anonim

Statisk variabler beholder sin verdi mellom funksjonskall. Flyktige variabler (som ikke er det motsatte av statisk ) er brukt når en variabel er brukt både innenfor en ISR (avbruddsservicerutine) og utenfor den. Flyktige forteller kompilatoren å alltid laste tilgjengelige fra RAM i stedet for å bufre den i et CPUregister.

På samme måte kan man spørre, kan vi bruke statisk og flyktig sammen?

Selv om du tilgang til a statisk verdi gjennom flere tråder, hver tråd kan har sin lokale cachekopi! For å unngå dette du kan erklær variabelen som statisk flyktig og dette vil tving tråden til å lese hver gang den globale verdien. Derimot, flyktige er ikke en erstatning for riktig synkronisering!

På samme måte, hvorfor bruker vi flyktig i C? C er flyktig nøkkelord er en kvalifikator som brukes på en variabel når den er deklarert. Den forteller kompilatoren at verdien av variabelen kan endres når som helst - uten at det blir tatt noen handling av koden som kompilatoren finner i nærheten. Implikasjonene av dette er ganske alvorlige.

Med tanke på dette, hva betyr statisk flyktig i C?

statisk refererer til omfanget av variabelen. Hvis variabelen er global, betyr det at omfanget er begrenset til kildefilen den ble deklarert i. Hvis variabelen er lokal for en funksjon, betyr det at minnet som brukes til å holde denne variabelen, er i applikasjonens statisk allokerte minne.

Kan vi bruke const med volatile i C?

Ja. En variabel kan erklæres som begge flyktige og konstant i C . Konst modifikator tillater ikke endring av verdien til variabelen ved internt program. Men det betyr ikke at verdien av konst variabel skal ikke endres av ekstern kode.

Anbefalt: