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 />

struct Date bdate;<br />

struct Point p1, p1;<br />

Yukarıdaki tanımlamaların ilgili yapı bildirimlerinin görülür olduğu bir noktada yapıldığı<br />

kabul ediliyor. Yapı bildiriminin görülmediği bir kaynak kod noktasında yapı değişkeni<br />

tanımlanması geçersizdir.<br />

struct Date mydate;<br />

tanımlamasıyla ismi mydate olan türü struct Date olan bir değişken tanımlanıyor.<br />

struct Point p1, p2, p3;<br />

tanımlamasıyla türleri struct Point olan p1, p2 ve p3 isminde üç ayrı değişken<br />

tanımlanıyor.<br />

Nesnelerin temel özellikleri nesnelerin türüne bağlı değildir. Şüphesiz yapı nesnelerinin de<br />

bilinirlik alanlarından, ömürlerinden, bağlantı özelliklerinden söz edilebilir. Bu özellikler<br />

doğal veri türleri için ne anlam taşıyorlarsa yapı nesneleri için de aynı anlamı taşır.<br />

Global isim alanında tanımlanan bir yapı nesnesi<br />

i) Dosya bilinirlik alanına aittir. Nesnenin tanımından sonra yer alan tüm işlevler bu yapı<br />

nesnesine ulaşabilirler.<br />

ii) Statik ömürlüdür. Programın çalışma zamanının başlangıcından, programın<br />

sonlanmasına kadar bellekte yer kaplar.<br />

iii) Statik ömürlü olduğu için ilkdeğer ataması yapılmadığı zaman, bellekte kapladığı<br />

bütün byte lar 0 bitleriyle doldurulur. Pratik olarak bunun anlamı yapının tüm<br />

elemanlarının değerinin 0 olmasıdır.<br />

Yerel alanda tanımlanan bir yapı nesnesi<br />

i) Blok bilinirlik alanına aittir. Yalnızca tanımlamasının yapıldığı blok içinde bu nesneye<br />

ulaşılabilir.<br />

ii) Otomatik ömürlüdür. Programın akışı, nesnenin tanımlandığı bloğa girdiğinde nesne<br />

yaratılır. Programın akışı nesnenin tanımladığı bloğu terk ettiğinde nesne bellekten<br />

boşaltılır.<br />

iii) Otomatik ömürlü olduğu için ilkdeğer ataması yapılmadığı zaman, bellekte kapladığı<br />

alanda çöp değerleri vardır. Pratik olarak bunun anlamı yapının tüm elemanlarının çöp<br />

değerleriyle başlatılmasıdır.<br />

Yapı nesnelerinin bildirim ve tanımlamalarında belirleyiciler kullanılabilir.<br />

Örneğin yerel ya da global bir yapı nesnesi static ya da const belirleyicisi ile<br />

tanımlanabilir. Bu belirleyicilerin bildirim ya da tanımlamalara kattığı anlamlar yapı<br />

nesneleri için bir farklılık taşımazlar.<br />

Yapı değişkenleri bileşik nesnelerdir. Yani parçalardan, alt nesnelerden oluşurlar. Zaten<br />

yapı bildirimi ile yapılan bir işlem de bu parçaların isimleri ve türleri hakkında derleyiciye<br />

bilgi verilmesidir. Bir yapı değişkeni (nesnesi) için, yapı bildiriminde belirtilen elemanların<br />

toplam uzunluğu kadar (byte olarak) yer ayrılır. Aşağıdaki örneği inceleyin:<br />

361

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

Saved successfully!

Ooh no, something went wrong!