PDA

Tam Sürümünü Görmek İçin : Fonksiyonlar


quasimodo
04/03/2007, 18:20
#include <stdio.h>

int fonk(int x)
{
printf(" merhaba ");
if(x > 0)
return;
else{
printf(" dunya ");
return 1;
}
}

int main()
{
fonk(2);

return 0;
}

Warning : Both return and return with a value used.

fakat
#include <stdio.h>

int fonk(int x)
{
printf(" merhaba ");
if(x > 0)
return;
else{
printf(" dunya ");
return;
}
}

int main()
{
fonk(2);

return 0;
}
bunda veya
#include <stdio.h>

int fonk(int x)
{
printf(" merhaba ");
if(x > 0)
return 2;
else{
printf(" dunya ");
return 3;
}
}

int main()
{
fonk(2);

return 0;
}


hata vermiyor. Bunu nedeni ne?


Sabahi
04/03/2007, 19:35
Hic birinde hata vermiyor. Sadece uyari veriyor. Ilk fonksiyonda uyari vermesinin nedeni basitce donus yollarindan biri int donerken oteki return yapmis. Derleyici bunun kasitli olarak yapilip yapilmadigini bilmedigi icin uyariyor. Oteki fonksiyonlarda butun donus yollari ayni oldugu icin uyarmamis.

quasimodo
04/03/2007, 20:44
Eger fonksiyonun geri donus tipi int ise ve ben

return;
ile fonksiyonu sonlandırırsam. Fonksiyon garbage
degerle geri doner degil mi?

Sabahi
04/03/2007, 21:18
C++ standarti ne diyor bilmiyorum. Tahminim architecture bagimli olarak degisiyordur. Ama sonucta isinize yarar bir deger olmayacagi icin garbage demek dogru galiba.