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

TÜR İSİMLERİ BİLDİRİMLERİ ve typedef<br />

BELİRLEYİCİSİ<br />

C dilinde derleyicinin daha önce bildiği bir türe her bakımdan onun yerini tutabilen yeni<br />

isimler verilebilir. Bu typedef anahtar sözcüğü kullanılarak yapılan bir bildirim deyimi ile<br />

sağlanır.<br />

typedef bildiriminin genel biçimi şöyledir:<br />

typdef ;<br />

Örnek:<br />

typedef unsigned int UINT;<br />

Bu bildirimden sonra UINT ismi derleyici tarafından unsigned int türünün yeni bir ismi<br />

olarak ele alınır. Yani kaynak kod içinde, typedef bildiriminin görülür olduğu bir noktada,<br />

UINT ismi kullanıldığında derleyici bunu unsigned int türü olarak anlamlandırır.<br />

UINT x, y, z;<br />

Bildiriminde artık x, y, z değişkenleri unsigned int türünden tanımlanmış olurlar.<br />

typedef bildiriminden sonra artık UINT ismi tür belirten isim gereken her yerde<br />

kullanılabilir:<br />

printf("%d\n", sizeof(UINT));<br />

typedef anahtar sözcüğü ile yeni bir tür ismi oluşturulması, bu türe ilişkin önceki ismin<br />

kullanılmasına engel olmaz. Yani yukarıdaki örnekte gösterilen typedef bildiriminin<br />

yapılmasından sonra<br />

unsigned int result;<br />

gibi bir bildirimin yapılmasına engel bir durum söz konusu değildir.<br />

Şüphesiz #define önişlemci komutuyla da aynı iş yapılabilirdi:<br />

#define UINT<br />

unsigned int<br />

Ancak typedef bildirimi derleyici tarafından ele alınırken, #define önişlemci komutu ile<br />

tanımlanan isimler önişlemci programı ilgilendirir. Yani yukarıdaki önişlemci komutunun<br />

kullanılmasından sonra, zaten derleyici UINT ismini görmez. Derleyiciye sıra geldiğinde,<br />

UINT isminin yerini unsigned int atomları almış olur.<br />

Algılanması zor olan tür isimlerine, typedef bildirimleriyle algılanması daha kolay tür<br />

isimleri verilebilir. typedef bildirimleri için aşağıda verilen basit kural kolaylık sağlar:<br />

typedef anahtar sözcüğü, her tür bildirimin önüne gelebilir. typedef anahtar sözcüğü bir<br />

bildirimin önüne geldiğinde, typedef kullanılmamış olsaydı değişken ismi olacak isimler,<br />

typedef anahtar sözcüğü eklendiğinde artık ilgili türün ismi olur. Örneğin:<br />

char *pstr;<br />

biçiminde bildirilen pstr char* türünden bir değişkendir.<br />

typedef char *pstr;<br />

387

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

Saved successfully!

Ooh no, something went wrong!