[]

C/C++ Sorusu

b() 5 döndürüyor. Neden?

int a() {
return 5;
}
int b() {
a();
}

 
su sekilde olsa tamam da;

int b() {
return a();
}

direkt a(); deyince return yapar mi emin olamadim.
  • nawres  (12.12.11 16:49:57) 
b, a'yı çalıştırıyo a zaten "return 5;"

@nawres, a zaten fonksiyon, döndürür direk.
  • egomanyak  (12.12.11 16:53:02) 
yazılı sınav olsa ben olsam bir şey döndürmez derdim, a 5 döndürüyor tamam da b fonksiyonu bir şey döndürmüyor.

hem hata vermesi gerekmiyor mu bu yazdıklarının ? eve gidince deneyeceğim, takibe aldım duyuruyu.
  • kimlanbu  (12.12.11 16:57:42) 
@egomanyak

peki return a();

desek ne olur?
  • nawres  (12.12.11 16:59:07) 
int b() {
a();
}
====
int b() {
return 5;
}
olmuyor mu ?
@nawres, şimdi bak sen de mantıklı geldin :D biri denesin harbi
  • egomanyak  (12.12.11 17:00:05 ~ 17:00:41) 
visual studio 2010 da bu şekilde çalışmadı. b must return a value diyor.


  • inheritance  (12.12.11 17:24:38) 
MinGW ile çalışıyor, o yüzden sordum zaten :)


  • fadetoreality  (12.12.11 17:31:48) 
nsa compile olmamasi lazim. demek ki return yoksa en sondaki statementi donduruyor kullandiginiz compiler.


  • natnan  (12.12.11 17:47:49 ~ 17:48:20) 
Ben de visual studio 2010 ile denedim, inheritance'ın dediği gibi "b must return a value" şeklinde hata veriyor.


  • kimlanbu  (12.12.11 20:05:00) 
doğru cevap şu:

yaptığınız şey c++ standardında adı çokça geçen "undefined behaviour"dur. başınıza her şey gelebilir, compiler'ınızın yükümlülüğü değil hata vermek.

"ben denedim son statement'ı döndürüyor benim derleyicim" demek de doğru değil, sizin bilmediğiniz başka koşullar altında çok başka bir değer de döndürebilir, derleyicinizin dökümantasyonunda açık olarak ne yapılacağı belirtilmemişse.
  • simendiferlerin efendisi  (12.12.11 20:05:21) 
Son statement'ı döndürmüyor zaten. Bilmediğim bir şey veya bir derleyici özelliği mi diye merak edip sordum.

Teşekkür ederim hepinize.
  • fadetoreality  (12.12.11 23:59:27) 
1
buraya yazılanların hakları Sir Anthony Hopkins'e aittir.
yazan eden compumaster, ilgilenen eden fader
modere edenler angelus, Artibir, aychovsky, baba jo, basond, compumaster, deckard, duyulmasi gerektigi kadar, fader, fraise, groove salad, kahvegibi, kaymaktutmayansicaksut, kibritsuyu, monstro, pandispanya, robin, ron dennis
bu sitede yazılanların hiçbiri doğru değildir. site içeriği küçükler için sakıncalı olabilir. yazılardan yazarları sorumludur. kaynak göstermeden alıntılanamaz. devlet tarafından atanmış bir kurumun internet üzerinde kimin hangi bilgiye ulaşıp ulaşamayacağına karar vermesi insan haklarına aykırıdır. web siteleri kullanıcıların istekleri doğrultusunda bağlandıkları yerlerdir. kullanıcılar isterlerse bir web sitesine bağlanmayabilirler. bu güçleri ve imkanları mevcuttur. bir kullanıcı bir siteye bağlanmak istiyorsa bu onun tercihi ve hakkıdır. bağlanmak istemiyorsa bu yine onun tercihi ve hakkıdır. halkın kendisine hizmet etmesi için görevlendirdiği kurumlar hadlerini aşıp halka neye ulaşıp ulaşmayacağını bilmeyen cahil cühela muamelesi edemezler. ebeveynlerin çocuklarını sakıncalı içeriklerden koruması için çok sayıda bedava ve ücretli yazılım mevcuttur. bu yazılımlar bir web tarayıcısını kullanmaktan daha karmaşık teknik bilgi gerektirmemektedir. devletin milletini küçük düşürmesi ve ebleh yerine koyması yasaktır. Skimlinks ile linkler üzerinden yönlendirme payı alınmaktadır.