[ define @ 14.12.2004. 23:13 ] @
Vidim da vi stalno koristite return=0 pa me interesuje koja je svrha koriscenja?
i Ako moze neko da mi kaze da li su iste biblioteke u windowsu i u linuxu npr <stdio.h> <conio.h> itd...
[ filmil @ 14.12.2004. 23:31 ] @

Citat:
i Ako moze neko da mi kaze da li su iste biblioteke u windowsu i u linuxu npr stdio.h conio.h itd...
Standard jezika C definiše standardna zaglavlja (tj. .h datoteke), koja moraju da postoje u svakoj C biblioteci.

Sva ostala zaglavlja nisu standardna C zaglavlja i ne garantuje se da postoje u svakoj C biblioteci. Postoje i drugi skupovi zaglavlja koja implementiraju funkcije iz drugih potrebnih standarda, kao što je npr. POSIX.

conio.h je tipičan primer nestandardnog zaglavlja, koje postoji samo pod DOS-om, ali je postalo toliko popularno da se mogu naći implementacije za druge operativne sisteme.

f

[Ovu poruku je menjao filmil dana 15.12.2004. u 15:16 GMT+1]
[ Vojislav Milunovic @ 15.12.2004. 00:00 ] @
Ukratko... pusti ti tu teoriju...
return 0;
Jednostavno kaže funkciji da iѕadje i koju vrednost da vrati...
Recimo:

Code:

int foo(){
 return 0;
}

int main(){
 int bar;
 bar = foo();
 printf("%d\n",bar);
 exit(0);
}


Eto return je izlaz iz funkcije pri čemu odredjujes vrednost koju će funkcija da vrati...

// mod: uklonjena priča o asembleru
// Voja: ok neću više =)

Prosto zar ne =)

[Ovu poruku je menjao filmil dana 15.12.2004. u 15:18 GMT+1]

[Ovu poruku je menjao Vojislav Milunovic dana 15.12.2004. u 15:32 GMT+1]
[ Goran Arandjelovic @ 15.12.2004. 13:17 ] @
Code:
return(nekapromenljiva);
vraca vrednost te promenljive koja treba biti istog tipa kao funkcija iz koje se vraca.

primer:
Code:

int pomnozi(int a, int b) {
  return a*b;
}

int main() {
  int x;
  x=pomnozi(4,3);
  //x ce postati 12
}

[ filmil @ 15.12.2004. 14:49 ] @
(uklonjen je OT deo priče, nadam se da je to OK)

f
[ Dundjerski Nemanja @ 15.12.2004. 21:05 ] @
Verovatno ti je jasno sto se tice korisnickih funkcija (one koje ti definises) sta znaci return. Eto objasnili su ti ljudi.

Mozda te interesuje sta znaci return 0; u main() funkciji. Evo ovako:
main() je funkcija koju poziva operativni sistem. Program pod C-om je
main() funkcija. Kada napises main() podrazumeva se da si napisao int main()
tacnije da funkcija main vraca celobrojnu vrednost. Ako na kraju funkcije main
izostavis return 0; to se i onako i ovako podrazumeva. A sta to znaci ? To znaci da tvoj program vraca status operativnom sistemu. Ako mu vratis nulu to znaci "sve je ok". Sa tim brojem signaliziras operativnim sistemu o tome kako se zavrsio tvoj program.

Ako imas Linux probaj da napises program i na kraju return 0; Kompajliraj ga i izvrsi.
Napisi u bash shellu:

echo $?

i dobices izlazni kod tvog programa (0). E sada, sto je to korisno? Ako napisies skript koji proverava izlazni status programa i recimo ako utvrdis da je izlazni status 1, onda mozes da preduzmes nesto oko toga u vidu komandi shella. Primer ti je fsck program pod Linuxom. man fsck za info.


Ciao.
[ dejan_su @ 15.12.2004. 21:11 ] @
Ja nikad ne koristim return 0. Ako mi funkcija ne vraca nista lakse mi je da stavim da je tipa void pa onda ne koristim return...
[ Vojislav Milunovic @ 16.12.2004. 14:11 ] @
E nije =) OS ne poziva main =) već skače na etntri point što je u Unix označeno kad pogledaš gdb sa _start pa onda ide call main =)))

poz...
[ filmil @ 16.12.2004. 16:43 ] @
Na stranu ko gde, šta i kako skače, standardi zatevaju da funkcija main ima tip int, i to svaki program mora da poštuje.

Više informacija se mogu na primer potražiti u C-FAQ-u.

You must research this well.

f

p.s. IMHO treba dobro paziti kada je potrebno, a kada sasvim beskorisno u priču uplitati mašinski jezik.
[ Vojislav Milunovic @ 16.12.2004. 16:49 ] @
Nisam ja počeo =)

Uzgred ja nikad nisam stavljao u main return 0; već sam uvek koristio exit(0) a za ostale funkcije normalno da je korišćen return =)
[ vlaiv @ 16.12.2004. 21:16 ] @
Mozda bi se moglo reci da se return 0 (mislim da kompajler prijavljuje gresku ako se stavi return = 0) najcesce koristi u sledecem slucaju (aj da kazemo i opravdano):


int blabla(){

//gomila koda

if(nastala_neka_greska)
return kod_greske;

//gomila drugog koda

if(nastala_druga_freska)
return kod_druge_greske;

//gomila ostalog koda


return 0; //sve proslo kako treba ...
}

Znaci uglavnom bih to opravdao u slucajevima kada rezultat funkcije predstavlja error kod izvrsenja funkcije ...
[ The Punisher @ 27.12.2004. 19:00 ] @
tom naredbom glavni program vraća pozivnom programu broj 0, a to je poruka operacijskom sustavu da je program uspješno okončan. štogod on radio. uočimo znak ";" iza naredbe return 0. on označava kraj naredbe te služi kao poruka prevoditelju da sve znakove koji slijede interpretira kao novu naredbu. upamti; znak ";" mora zaključavati svaku naredbu u jeziku c++.
Code:
#include <iostream>
using namespace std;

int main() {
     cout <<bla bla bla<< endl;
     return 0;
}