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

Yukarıdaki deyim ise bir typedef bildirimidir. Artık pstr derleyici tarafından bir tür ismi<br />

olarak ele alınır. pstr, char türden bir adres türünün başka bir ismi olarak, geçerli bir<br />

türdür. Yani yukarıdaki typedef bildiriminden sonra<br />

pstr p;<br />

gibi bir tanımlama yapılabilir. Bu tanımlama<br />

char *p<br />

ile aynı anlama gelir.<br />

Bir typedef bildirimi ile elde edilen fayda her zaman #define önişlemci komutuyla<br />

sağlanamayabilir:<br />

#define pstr char*<br />

gibi bir önişlemci ismi tanımlaması yapıldığında, önişlemci pstr ismini gördüğü yerde<br />

bunun yerine char * atomlarını yerleştirir.<br />

char *str;<br />

gibi bir bildirimin<br />

pstr str;<br />

olarak yazılmasında bir hata söz konusu olmaz. Önişlemci pstr yerine char *<br />

yerleştirdiğinde derleyiciye giden kod<br />

char *str<br />

haline gelir.<br />

char *p1, *p2, *p3;<br />

önişlemci #define komutunun kullanılarak yukarıdaki gibi bir bildirimin yapılmak istensin.<br />

pstr p1, p2, p3;<br />

yazıldığında, önişlemci yer değiştirme işlemini yaptıktan sonra derleyiciye verilen kod<br />

aşağıdaki biçime dönüşür:<br />

char *p1, p2, p3;<br />

Bu tanımlama yapılmak istenen tanımlamaya eşdeğer değildir. Yukarıdaki bildirimde<br />

yalnızca p1 bir gösterici değişkendir. p2 ile p3 gösterici değişkenler değildir. char türden<br />

değişkenlerdir.<br />

Bir diziye ilişkin de yeni tür ismi bildirimi yapılabilir:<br />

char isimdizi[20];<br />

Yukarıdaki deyim ile isimdizi isimli char türden 20 elemanlı bir dizi tanımlanmış olur.<br />

typedef char isimdizi[20];<br />

Yukarıdaki deyim ise bir bildirimdir. Bu bildirim ile isimdizi artık 20 elemanlı int türden<br />

dizilerin tür ismidir. Bu typedef bildiriminden sonra eğer<br />

388

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

Saved successfully!

Ooh no, something went wrong!