Kan vi bruge statisk og flygtigt sammen i C?
Kan vi bruge statisk og flygtigt sammen i C?

Video: Kan vi bruge statisk og flygtigt sammen i C?

Video: Kan vi bruge statisk og flygtigt sammen i C?
Video: Как стать Успешным Парикмахером! Как достичь Успеха в Любом бизнесе! Ева Лорман! 2024, April
Anonim

Statisk variabler bevarer deres værdi mellem funktionskald. Flygtig variabler (som ikke er det modsatte af statisk ) er Brugt når en variabel er Brugt både inden for en ISR (interrupt service routine) og uden for den. Flygtig fortæller compileren altid at indlæse tilgængelig fra RAM i stedet for at cache den i et CPUregister.

På samme måde kan man spørge, kan vi bruge statisk og flygtigt sammen?

Selvom du adgang a statisk værdi gennem flere tråde, hver tråd kan har sin lokale cachekopi! For at undgå dette du kan erklær variablen som statisk flygtig og dette vilje tving tråden til at læse hver gang den globale værdi. Imidlertid, flygtige er ikke en erstatning for korrekt synkronisering!

På samme måde, hvorfor bruger vi flygtige i C? C er flygtig nøgleord er en kvalifikator, der anvendes på en variabel, når den er deklareret. Den fortæller compileren, at værdien af variablen kan ændre sig til enhver tid - uden at der foretages nogen handling af koden, som compileren finder i nærheden. Konsekvenserne af dette er ret alvorlige.

I betragtning af dette, hvad betyder statisk flygtig i C?

statisk henviser til omfanget af variablen. Hvis variablen er global, betyder det, at omfanget er begrænset til kildefilen, den blev erklæret i. Hvis variablen er lokal for en funktion, betyder det, at den hukommelse, der bruges til at holde denne variabel, er i applikationens statisk allokerede hukommelse.

Kan vi bruge const med flygtig i C?

Ja. En variabel kan erklæres som begge flygtige og konstant i C . Konst modifikator tillader ikke at ændre værdien af variablen ved internt program. Men det betyder ikke, at værdien af konst variabel bør ikke ændres af ekstern kode.

Anbefalede: