[ SuperC @ 16.11.2006. 19:19 ] @
..
moze li mi neko detaljnije pojasniti izvrsenje funkcije (tek smo ovo ucili):


void g(int y) {
int a = 100;
cout << y+a;
}
void f (int x) {
int a=x;
g (a+2);
cout << a;
}
int main () {
int a =999;
f(12);
g(a);
}'


rjesenje je 114121099
------------------------------------
Jasno mi je da izvrsenje pocinje sa main () i da se a postavlja na vrijednost 999 i onda se poziva f(12) i ide se na void f, a sta je tu 12? Kako se doslo do gornjeg rjesenja?
[ X Files @ 16.11.2006. 19:26 ] @

1. f(12)
g(12+2)
ispis: 14+100 = 114
ispis: 12

2. g(999)
ispis: 999+100 = 1099

dakle: 114 12 1099
(rastavio sam da vidis odakle sve to)


[Ovu poruku je menjao X Files dana 16.11.2006. u 20:37 GMT+1]
[ SuperC @ 16.11.2006. 19:58 ] @
aha

ok, znaci vrijednost 12 se prenosi na pod-dio zadatka preko funkcije f i prakticno int x dobija vrijednost od 12. itd. Hvala puno.
[ DjoleReject @ 21.11.2006. 16:21 ] @
Kada gledas kako nesto radi, prvo krenes od dela gde pise main(), pa redom... Kad se negde napise poziv druge funkcije (sto ces prepoznati po zagradama - praznim ili sa nekim argumentima, npr: neka_funkcija() ili neka_funkcija(neki_broj, neki_karakter) i slicno), onda pogledas gde je definisana ta funkcija (trazis isto to ime izvan main() funkcije. Kad ga nadjes, vidis sta se desava i sta ona vraca (ako ista vraca). Posle toga se vratis u main() i citas dalje od sledeceg reda.

Kad se malo ubacis u foru, videces da nije toliko tesko citati kod, posebno ako je napisan po pravilima lepog pisanja koda :)