«« ( Date ) »» // «« ( Thread ) »» // ri4pp - 2006

Problem sa ++ i --

by Ivan Mitic
četvrtak, 15. jun 2006 - 21:49.

Ovo jesu operacije sa bocnim efektima, i problem nastaje kada se primenjuju
na elemente nizova ili polja klasa.
Npr. uzmimo sledeci primer
a = new int[4];
a[2] = 2;
b = a[2]++;
problem je u tome sto treba dva ili tri puta da se loaduje a[2] tj. kod za
ovo bi trebao da izgleda isto kao i za a[2] = a[2]+1 s tim sto na steku
treba da ostane stara vrednost a[2]; znaci b = a[2]++; bi trebao da izgleda
slicno ovome dole (bar mislim)
getstatic 0
const_2
aload //ucirava a[2] - ta vrednost ce biti dodeljena b-u
getstatic 0
const_2 //ucitava a i const_2 za astore dole
getstatic 0
const_2
aload
const_1
add
astore
putstatic 1 // dodela vrednosti b-u
pa ako neko ima ideju...

Pozdrav