Nejste přihlášen/a.
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?
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.
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.