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

#include <br />

int g = 20; /* g global değişken */<br />

void func()<br />

{<br />

/* global g değişkenine atama yapılıyor. */<br />

g = 100;<br />

/* global g değikeninin değeri yazdırılıyor. */<br />

printf("global g = %d\n", g);<br />

}<br />

int main()<br />

{<br />

int g; /* g yerel değişken */<br />

/* yerel g değişkenine atama yapılıyor */<br />

g = 200;<br />

/* yerel g yazdırılıyor. */<br />

printf("yerel g = %d\n", g);<br />

func();<br />

/* yerel g yazdırılıyor. */<br />

printf("yerel g = %d\n", g);<br />

}<br />

return 0;<br />

İşlevlerin kendileri de bütün blokların dışında tanımlandıklarına göre global varlıklardır.<br />

Gerçekten de işlevler kaynak kodun her yerinden çağrılabilir. Aynı bilinirlik alanına ilişkin,<br />

aynı isimli birden fazla değişken olmayacağına göre, aynı isme sahip birden fazla işlev de<br />

olamaz.<br />

[Ancak C++ dilinde isimleri aynı parametrik yapıları farklı işlevler tanımlamak mümkündür.]<br />

Bildirilen bir isme bilinirlik alanı içinde her yerde ulaşılamayabilir. Çünkü bir isim, daha<br />

dar bir bilinirlik alanında aynı isim tarafından maskelenmiş olabilir. Bu yüzden "bilinirlik<br />

alanı" dışında bir de "görülebilirlik" (visibility) teriminden söz edilebilir.<br />

[C++ dilinde global bir ismin yerel bir isim tarafından maskelenmesi durumda, global isme çözünürlük işleci<br />

(scope resolution operator) ismi verilen bir işleçle erişim mümkündür.]<br />

Nesnelerin Ömürleri<br />

Ömür (storage duration / lifespan), nesnelerin, programın çalışma zamanı içinde bellekte<br />

yer kapladığı süreyi anlatmak için kullanılan bir terimdir. Bir kaynak kod içinde<br />

tanımlanmış değişkenlerin hepsi, program çalışmaya başladığında aynı zamanda<br />

yaratılmaz. Programlarda kullanılan varlıklar, ömürleri bakımından üç gruba ayrılabilir:<br />

1. Statik ömürlü varlıklar<br />

2. Otomatik ömürlü varlıklar<br />

3. Dinamik Ömürlü varlıklar<br />

i. Statik Ömürlü Varlıklar<br />

Statik ömürlü varlıklar (static duration – static storage class), programın çalışmaya<br />

başlamasıyla bellekte yerlerini alır, programın çalışması bitene kadar varlıklarını<br />

sürdürür, yani bellekte yer kaplar. Statik ömürlü varlıklar, genellikle amaç kod (.obj) içine<br />

yazılır. C dilinde statik ömürlü üç ayrı varlık grubu vardır:<br />

global değişkenler<br />

dizgeler (çift tırnak içindeki yazılar)<br />

statik yerel değişkenler<br />

97/529

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

Saved successfully!

Ooh no, something went wrong!