08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

C ve Sistem Programcıları Derneği - C Ders Notları - Necati Ergin<br />

a = b;<br />

/* Bir kesme gelerek b'yi değiştirebilir! */<br />

if (a == b) {<br />

/***/<br />

}<br />

Bir donanım kesmesi (örneğin 8h gibi) b'yi değiştiriyorsa, bu durum if deyimi tarafından<br />

farkedilmeyebilir. İşte bu tür durumlarda değişkenlerin eniyileme amacıyla geçici olarak<br />

yazmaçlarda tutulması arzu edilmeyen sonuçların oluşmasına yol açabilir. volatile "<br />

Değişkenleri eniyileme amacıyla yazmaçlarda bekletme, onları bellekteki gerçek<br />

yerlerinde kullan!" anlamına gelen bir tür belirleyicisidir. Bu anlamıyla volatile<br />

belirleyicisini register belirleyicisi ile zıt anlamlı olarak düşünebiliriz. Yukarıdaki örnekte b<br />

değişkenini volatile olarak bildirerek anlattığımız gibi bir problemin çıkması engellenebilir.<br />

int a;<br />

volatile int b;<br />

volatile çok özel uygulamalarda kullanılabilen bir belirleyicidir.<br />

Yerel, parametre ya da global değişkenlerle birlikte kullanılabilen volatile belirleyicisi<br />

ancak çok özel uygulamalarda önemli olabilir. Bu belirleyicinin bilinçsizce kullanılmasının<br />

performansı kötü yönde etkileyebileceğini unutmayınız.<br />

357

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!