Pod-Lekcija: Nepostojani parametri (volatile)
- zatrebaće u toku rada -
Jezik C je projektovan za potrebe sistemskog programiranja, tj za pisanje operativnog sistema, programa prevodilaca, ... Tada je ponekad potrebno pristupiti i hardverskim registrima računara. Sadržaj takvih registara može da se promeni i pod dejstvom spoljašnjih uticaja, a ne samo pod uticajem programa. Na primer, sadržaj registra tastature se promeni kada se pritisne neki taster na njoj.
Promenljive koje u programu predstavljaju takve registre nazivaju se nepostojane promenljive. Definišu se dodavanjem reči volatile na početku naredbe za njihovo definisanje.
Na primer:
volatile long miss; /*sadrži podatke o položaju komp.miša */
Ako se nepostojana promenljiva koristi kao stvarni argument funkcije, onda treba da se ispred oznake tipa tog parametra napiše reč volatile.
Na primer, ako želimo da potražimo koji je položaj miša, možemo to uraditi na sledeći način:
void polozajMisa(volatile long miss, int *x, int *y)
{
/* na neki način se ovde izdvoje koordinate miša */
}
Nepostojane promenljive i parametri se koriste na isti način kao i obične promenljive. Za njih ima smisla postaviti pitanje da li su promenile vrednost, čak i ako u programu ne postoji nijedna naredba koja bi tu promenu proizvela.