İbrahim ÖZTÜRK - PhD, MSc, BSc
İbrahim ÖZTÜRK
Dr Ögretim Üyesi
Devreler ve Sistemler Anabilim Dalı Başkanı
Elektrik-Elektronik Mühendisliği Bölümü
Mühendislik ve Doğa Bilimleri Fakültesi
E Blok, Batı Girişi, EH218
Osmaniye Korkut Ata Üniversitesi
Telefon : + 90 (0)328 827 1000 / 3485 (sadece acil durumlar için)
E-posta : [email protected]
Adres : Fakıuşağı Mah. 80010 Merkez / OSMANİYE
Fakıuşağı Mah., Osmaniye Korkut Ata Üniversitesi, Karacaoğlan Yerleşkesi,
Mühendislik Fakültesi, Elektrik-Elektronik Mühendisliği Bölümü,
BATI Girişi, Kat: 3, Oda: EH218, 80010, Merkez / OSMANİYE
Burası 07 Kasım 2025 01:24:57.tarihinde güncellendi.

Genel Yükleme Gençler Diğer

C Dili Anahtar Kelimeleri (Keywords)

Standart ANSI C aşağıdaki anahtar kelimeleri (keywords) tanımaktadır.
(Fırsat buldukça tüm anahtar kelimeler için açıklamalar ekleyeceğim.)
auto
break
case
char
const
continue
default
do
double
else
enum
extern
float
for
goto
if
int
long
register
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while

volatile

Değişken değerinin arka plan rutinleri (thread, servisler, kesmeler, harici kesmeler, vs) tarafından değiştirilebilir olduğunu işaret etmek için kullanılır. Tip niteliyici (type-qualifier)'dir.

Kullanım syntaxi asagidaki sekillerde olabilir:
volatile veri-tanimlama;
volatile uint8_t degiskenim = 10;
Kullanım senaryosu asagidaki sekilde olabilir:
Satır 5: degiskenim = 10;
...
Satır 25: degiskenim = 20;

Yukarıdaki kodlama senaryosunda 5. satırda değeri güncellenen degiskenime 25. satıra kadar dokunulmadığı bir durumda derleyici derleme iyileştirmeleri (optimizasyonları) sebebiyle Satır 5'i hic derlemeyebilir yani makina koduna cevirmeyebilir. Halbuki degiskenim 5. ve 25. satır arasında herhangi bir arka plan servisi veya harici donanımsal bir kesme tarafindan kullanılabilirdi ve programin bunu kacirma ihtimali olusmus olabilirdi. Boyle bir senaryoda volatile tip niteleyicisini kullanarak istenmeyenin onune gecmis oluruz yani derleyiciye degiskenimi optimizasyon disi birakmasini özellikle belirtmis oluruz.

Böyle bir durumda volatile kullanmaktansa derleyici optimizasyonlarını tümden kapatmak çözüm olarak ilk aklınıza gelebilir. Fakat bu yaklaşım farklı senaryolarda çok daha büyük olumsuzluklara sebep olacaktır. Dolayısıyla bu yaklaşımı hemen unutmanız ve volatileı uygun yerde kullanabilmeniz sizin lehinize olacaktır.

Kullanım senaryosu asagidaki sekilde olabilir:
Multi thread bir uygulama üzerinde global değişkenler volatile tip niteleyicisi ile kurgulanmalıdır.

Diğer yandan paralel thread veya rutinlerden volatile tip niteleyicili değişkenlere erişim sırasının GCC tarafından nasıl yönetildiğini anlayabilmek için şurayı değerlendirebilirsiniz.
İlgili site kuruluş tarihinden (02/10/2019) bu yana 173297 kez görüntülenmiştir.
© 2019- 25 İbrahim ÖZTÜRK | Her hakkı saklıdır.