stack'e 12byte arg atiyosun, printf de %d'leri gorur gormez dorder dorder okuyup donuyor. sonucta dort byte eksik okudugu icin de stacki corrupt ediyor.
benim aldigim sonuclar soyle
32bit gcc4.1.2, c++, derlemedi (integer constant is too large for long type)
32bit gcc4.1.2, c, "2 1"
64bit gcc4.3.4, c++, "2 8"
64bit gcc4.3.4, c, "2 8"
sondakilerin muhtemelen 4 degil 8byte boundary'de stack kullandigi icin dogru calistigini dusunup sunu denedim:
printf("%d %d", 9221231229496729812301263126032371021237123591203120321612314214124, 8);
sonuc bekledigim gibi cikti:
c: "-2089386260 -1"
c++: "-2089386260 -1"