Használhatjuk együtt a statikus és az illékony elemeket C-ben?
Használhatjuk együtt a statikus és az illékony elemeket C-ben?

Videó: Használhatjuk együtt a statikus és az illékony elemeket C-ben?

Videó: Használhatjuk együtt a statikus és az illékony elemeket C-ben?
Videó: ПОЧЕМУ Я ЖДУ L4D3 2024, November
Anonim

Statikus a változók megőrzik értéküket a függvényhívások között. Illó változók (ami nem az ellenkezője statikus ) vannak használt amikor egy változó az használt mind az ISR-en (megszakítási szolgáltatási rutinon) belül, mind azon kívül. Illó azt mondja a fordítónak, hogy a változókat mindig a RAM-ból töltse be, ahelyett, hogy egy CPUregisterben gyorsítótárazza.

Hasonlóan feltehetjük a kérdést, hogy használható-e együtt a statikus és az illékony?

Még akkor is, ha te hozzáférés a statikus érték több szálon keresztül, mindegyik szálon keresztül tud rendelkezzen a helyi gyorsítótárazott másolatával! Ennek elkerülése érdekében tudsz deklarálja a változót mint statikus illékony és ez akarat kényszerítse a szálat minden alkalommal, amikor a globális értéket beolvassa. Azonban, illó nem helyettesíti a megfelelő szinkronizálást!

Hasonlóképpen, miért használjuk a volatile-t C-ben? C ingatag A kulcsszó egy olyan minősítő, amelyet deklarálásakor alkalmaznak egy változóra. Azt mondja a fordítónak, hogy a változó értéke bármikor változhat – anélkül, hogy a fordító által a közelben talált kód bármiféle lépést tenne. Ennek elég komoly következményei vannak.

Ezt figyelembe véve mit jelent a statikus illékony C-ben?

statikus a változó hatókörére utal. Ha a változó globális, az azt jelenti, hogy a hatókör a forrásfájlra korlátozódik, amelyben deklarálták. Ha a változó lokális a függvényhez, akkor ez azt jelenti, hogy a változó tárolására használt memória az alkalmazás statikusan lefoglalt memóriájában van.

Használhatjuk a const-t volatile-val C-ben?

Igen. Egy változó tud mindkettőnek deklarálni kell illó és állandó ban ben C . Const módosító nem teszi lehetővé a változó értékének belső program általi megváltoztatását. De ez nem jelenti azt az értéket const változót nem szabad megváltoztatni külső kóddal.

Ajánlott: