folder Tahribat.com Forumları
linefolder C - C++
linefolder Güzel C++ Bir Sorusu ????



Güzel C++ Bir Sorusu ????

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    zombieone
    zombieone's avatar
    Kayıt Tarihi: 18/Temmuz/2005
    Erkek

    Aslında programın çok mantıklı bir çalışması var güzel bir soru ben programı şöyle yorumlayacağım


    #define EKLE(x) x + x
    main(){
    int x = 3;
    int y = EKLE(++x);/
    *x değeri artmadan makroya giriyor yani orjinal değeri olan 3 ile  makro fonksiyon x i kendisiyle toplıyor buda 6 makro çağırıldığı yere geri dönüiyor ve x bir artırılıyor x=4 oldu makro dan gelen değerle 6 ile 4 toplanıyor =10*/


    }


    Ölüler ağlıyor
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek

    Beyler cevabınızı yada yorumunuzu yazin yeterlidir. herkez sizinle ayni sekil düsünmek zorunda degil.


    ayrica charmander gercekten oyle bişey dedi mi bilmiorum, ama dediyse bana inanmasi cok zor olabilecek bir sey gibi gelmiyor cunku benzeri seyleri kendim yasadim o yaslarda. 18-19 yaslarinda bir insan gercekten (nadiren de olsa) programlama uzmanı olabilir. uydu projelerinden kastınız tam nedir bilmiyorum ama bir proje, iyi bir yonetici ile takim calismasi ile böldügünde projeyi tamamlamak icin nobel odulu almis insanlarla calismaya gerek yoktur, yoneticiler iyiyse ortalama programcılarla bircok buyuk projeyi goturebilirsiniz. ayrica charmander bildiim kadariyla konusunda gayet iidir.


    Zaten bana göre bu soru birinin sadece c++ da birkac spesifik seyi bilip bilmediini gosterir, c++ i ne kadar iyi kullandigini gostermez. yinede güzel bir soru


    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Destroyer
    Destroyer's avatar
    Kayıt Tarihi: 27/Eylül/2003
    Erkek


    #define EKLE(x) x + x
    main(){
    int x = 3;
    int y = EKLE(++x);
    }


    bu kodun karşılığı bildiğiniz üzere şudur: y=(++x)+(++x);
    burda olan olay işlemciden işlemciye ve kullandıgınız compiler'dan compiler'a göre değişir.
    kendi makinamda(p4 3.06Ghz+3.00Ghz;VStudio 6.0+SP5)  yaptıgım denemelerde; işlemin sağ tarafının soldan sağa dogru yapıldıgını gördüm.
    ilk önce x'in degerini 1 artırıyor, kod şu hali alıyor: y=x+(++x); x'in degeri 4 oluyor.
    sonra sağa kayıp x'i tekrar 1 artırıyor bu kez kod şöyle oluyor: y=x+x;  x'in degeri 5 oluyor.
    En son basamakta  bildigimiz toplama işlemini yapıyor, sağdaki x'i soldaki x'e ekliyor. sonuç 10 oluyor.
    Bir adım ileri gidersek yani şöyle bişe verilirse:
    x'in ilk degeri 3 olsun yine ve y=(++x)+(++x)+(--x);
    işlem sırasıyla :
    x 4 olur ve kod: y=x+(++x)+(--x);
    x 5 olur ve kod: y=x+x+(--x); bu basamakta ortadaki x ile bastaki x toplanıyor.
    kod şu hali alıyor: y=10+(--x);
    x 1 azalıp 4 oluyor ve kod: y=10+x;
    en son basamakta sondaki x 10'un üzerine ekleniyor ve y 14 oluyor x de 4 oluyor.
    kafanızdaki soru işaretleri gittiyse ne mutlu bana..


     


    d.d.
Toplam Hit: 4318 Toplam Mesaj: 14