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

ve argümanların türü, parametre değişkenlerinin türlerine dönüştürülür. Ancak bu tür<br />

dönüşümünün gerçekleşmesi için, derleyicinin işlev çağrı ifadesine gelmeden önce işlevin<br />

parametre değişkenlerinin türleri hakkında bilgi sahibi olması gerekir. Derleyici bu bilgiyi<br />

iki ayrı şekilde elde edebilir:<br />

Çağrılan işlev çağıran işlevden daha önce tanımlanmışsa derleyici, işlevin<br />

tanımlamasından parametre değişkenlerinin türünü belirler.<br />

İşlevin bildirimi yapılmışsa derleyici, parametre değişkenlerinin türü hakkında önceden<br />

bilgi sahibi olur. Aşağıdaki örneği inceleyin:<br />

#include <br />

double func(double x, double y)<br />

{<br />

/***/<br />

}<br />

int main()<br />

{<br />

int a, b;<br />

/***/<br />

func(a, b);<br />

}<br />

return 0;<br />

Yukarıdaki örnekte main işlevi içinde çağrılan func işlevine argüman olarak, int türden<br />

olan a ve b değişkenlerinin değerleri gönderiliyor. İşlev tanımı çağrı ifadesinden önce yer<br />

aldığı için int türden olan a ve b değişkenlerinin değerleri, double türüne dönüştürülerek<br />

func işlevinin parametre değişkenleri olan x ve y değişkenlerine aktarılır. func işlevinin<br />

main işlevinden sonra tanımlanması durumunda, otomatik tür dönüşümünün<br />

yapılabilmesi için, işlev bildirimi ile derleyiciye parametre değişkenlerinin türleri hakkında<br />

bilgi verilmesi gerekir.<br />

#include <br />

double func(double x, double y);<br />

int main()<br />

{<br />

int a, b;<br />

/***/<br />

func(a, b);<br />

}<br />

return 0;<br />

double func(double x, double y)<br />

{<br />

/***/<br />

}<br />

Peki çağrılan işlev çağıran işlevden daha sonra tanımlanmışsa ve işlev bildirimi<br />

yapılmamışsa -tabi bu durumda derleme zamanında hata oluşmaması için işlevin int<br />

türden bir geri dönüş değerine sahip olması gerekir- tür dönüşümü gerçekleşebilecek mi?<br />

Bu durumda derleyici, işlevin parametre değişkenlerinin türleri hakkında bilgi sahibi<br />

olamayacağı için, işleve gönderilen argümanlara, varsayılan argüman dönüşümü denilen<br />

işlemi uygular. Varsayılan argüman dönüşümü şu şekilde olur:<br />

133/529

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

Saved successfully!

Ooh no, something went wrong!