08.11.2014 Views

c_kitap

c_kitap

c_kitap

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

BELİRLEYİCİLER ve NİTELEYİCİLER<br />

Belirleyiciler (storage class specifiers), bildirimler yapılırken kullanılan ve nesnelerin<br />

özellikleri hakkında derleyicilere bilgi veren anahtar sözcüklerdir.<br />

C'de kullanılan belirleyiciler şunlardır:<br />

auto, register, static, extern ve typedef.<br />

Tür niteleyicileri ise nesnelerin içindeki değerlerin değiştirilip değiştirilmeyeceğine ilişkin<br />

bilgi verir.<br />

Tür belirleyicileri şunlardır:<br />

const, volatile.<br />

Yer belirleyici ve tür niteleyiciler C'nin anahtar sözcükleridir.<br />

Yer Belirleyicilerle Bildirim İşlemi<br />

Yer belirleyici, tür belirleyici ya da tür ifade eden anahtar sözcüklerin dizilimi herhangi bir<br />

biçimde olabilir:<br />

auto const unsigned long int a;<br />

const auto unsigned long int a;<br />

unsigned long int auto const a;<br />

int const long auto unsigned a;<br />

Yukarıdaki bildirimlerin hepsi geçerlidir. Ancak okunabilirlik açısından yer belirleyici<br />

sözcüğün daha önce yazılması önerilir.<br />

Eğer bir bildirimde belirleyicisi ya da tür niteleyicisi bir tür bilgisi olmadan kullanılırsa,<br />

önceden seçilmiş (default) olan int türü bildirimin yapıldığı kabul edilir.<br />

register int a;<br />

Yukarıdaki bildirim ile<br />

register a;<br />

bildirimi eşdeğerdir.<br />

Ancak okunabilirlik açısından böyle bir bildirim önerilmez.<br />

auto Belirleyicisi<br />

auto yalnızca yerel değişkenler için kullanılabilecek bir yer belirleyicisidir. auto<br />

belirleyicisinin global değişkenlerin ya da işlevlerin parametre değişkenlerininin<br />

bildiriminde kullanılması geçersizdir.<br />

Bu anahtar sözcük, nesnenin bilinirlik alanı bittikten sonra kaybolacağını, bellekte<br />

kapladığı yerin geçerliliği kalmayacağını gösterir. Yerel değişkenler otomatik ömürlüdür.<br />

Yani bulundukları bloğa ilişkin kod çalışmaya başlandığında yaratılır, söz konusu bloğun<br />

yürütülmesi bittikten sonra yok olurlar. İşte auto belirleyicisi bu durumu vurgulamak için<br />

kullanılır. Zaten bir yerel değişken, başka bir yer belirleyici anahtar sözcük kullanılmadığı<br />

sürece (default olarak) auto biçiminde ele alınır. Bu durumda auto yer belirleyicisinin<br />

kullanımı gereksizdir:<br />

{<br />

}<br />

auto int a;<br />

float b;<br />

341

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

Saved successfully!

Ooh no, something went wrong!