Nejste přihlášen/a.

Přihlásit se do poradny

 

Volatile vs. Static v C-éčku

Od: majlik odpovědí: 1 změna:

Dobrý den,

mohl by mi posím někdo vysvětlit jaký rozdil je mezi proměnnou delkarovanou jako volatile a static v Céčku?

 

 

1 odpověď na otázku
Řazeno dle hodnocení

 

 

hodnocení

0x

Věc není postavená tak, že proměnná může být statická nebo volatilní. I statická proměnná může být současně deklarována jako volatilní.

Statická proměnná je taková, které existuje v rámci modulu či třídy pouze jednou a její hodnota je v rámci tohoto kontextu sdílena. Pokud máte třídu se statickou proměnnou, sdílí všechny instance tutéž hodnotu. Jakmile je hodnota změněna, změní se pro všechy instance.

Volatilní proměnná je taková, u které je kompilátor instruován, že se její hodnota může změnit, aniž by to vyplývalo ze znalosti kódu. Nemůže tedy provádět optimalizace kódu v souvislosti s touto proměnnou, ale musí zajistit, že je obsah proměnné při každém použití vždy opětovně načten z paměti (právě pro případ, že se její hodnota "na pozadí" změnila). Typicky mohou tuto proměnnou měnit jiná vlákna, která běží paralelně mimo hlavní vlákno.

 

 


 

 

 

Přihlásit se k odběru odpovědí z této otázky:

Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.

Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.

Copyright © 2004-2025 Poradna Poradte.cz. Všechna práva vyhrazena. Prohlášení o ochraně osobních údajů. | [tmavý motiv]