Static Variable

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    garga
    garga's avatar
    Kayıt Tarihi: 29/Temmuz/2002
    Erkek
    Yaw millet c/c++ biraz bilenles şu sitatic variable ne olduğunu bilirler... hani şu değerini "aklında" tutan variable...
    Benim merak ettiğin şu compiler yada program herneyse nası oluyorda static variableın tanımlandığı line ilk defasında çalıştırdıktan sonraki lerde atlıyor... Yani beyni yokki haıtlasın ilk defamı diye... Hocaya sordum yaw hocam dedim memori falan mı var orayamı atıyo dedim? yok dedi... Peki özel bi karaktermi atıyo o line ın başına dedim hayır? dedi peki ne dedim.. oda git araştır bi soraki derse öğrenmezsen not kıracam dedi... İpne sinir etti beni ya... o kadar yere baktım bulamadım buraya geldim belki bilen biri vardır... Yaw Holy sen biliyosundur,sende merak edersin böle acaib şeyleri...

    anca gidersin...
  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Mayki
    Mayki's avatar
    Kayıt Tarihi: 19/Aralık/2002
    Erkek
    holy abi bu soruyu şöyle cevapladı :

    HolyOne : memorye yazio
    SySTemOfaDowN : hocası yok demiş
    HolyOne : strsin
    SySTemOfaDowN : ahuaha
    HolyOne : allahütaladan inio desin o zaman hoja sorarsa, cenabi hak oole yaratmis ondan desin
    HolyOne : abü memoride kalio iste nerde kalcak baska
    complier bi adres atiyo ona


    umarım yardımcı olabilmişisdir :))

    The turth is somewhere over there
  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek
    Abi Bu hojaların topu piskopat dert etme sen, adam static komutunun memoryde ne sekilde ne farkla tutuldugunu bilse zaten o okulda durmaz...

    bilmiom demeyide malesef birçok hojamız eziklik saydığından ya sıkarlar yada böle abzürt bi cewap verirler.

    Türkiede bu bole abi, eger memoryde ne çeşit bi farkla atandığını merak ediyosan ne kadar araştırsan hiçbi yerde bulamazsın, iki boş proram yaz, birinde bi variable i static tanımla diğerinde obur turlu tanimla sora Windiff diye bişey gelir Visual Studio da onu kullanarak iki exe arasındaki farkı öğrenirsin.

    bu sana ikisinin arasındaki farkı anlatacaktır.

    sen anlayamadıysan hojanın cevabını da ben sana tercüme ediyim: bana ole her aklına geleni sorma, sakata gelirsin demek istemiş.

    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
  4. KısayolKısayol reportŞikayet pmÖzel Mesaj
    garga
    garga's avatar
    Kayıt Tarihi: 29/Temmuz/2002
    Erkek
    :))) Demek sadece bizim hocalar böle salak,ve eziq değilmiş :) Neyse ben soruyu biraz yamultarak sormuşum tam olarak neye kafayı taktığımı anlatamamışım galiba... Şimdi static bi değer yaratında yani o değer memoryde tutuluyo zaten bunun şüpe götürür bi yanı yok, başka yerde tutamazki alat yaw nereye sokacak başka :))) Benim tam olarak merak ettiğim şu şimdi bi for loopun içinde (türkçesi for döngüsü :)) şunu yazdık "static int a=6;" sora o line ın altında print aldık sorada "a++;" yazdık fordan çıktık... Output aldığımızda a=6,a=7,a=8.. böle gidiyo yani ilk for dönüşünde"static int a=6;" yı yapıyo sorakilerde atlıyo... Hah bunu merak ediyom işte ilk seferi olduğunu nası anlıyo, ve sorakilerde nası atlıyo... Bu arada "a=6" yazmadığımızda direk 0 (sıfır) atıyo, ve 1,2,3,4... diye veriyo outputu... Hah işte buna benim teorim static gördüğü yerde ya programcının değeri okuyo,yazıyo, eğer değer yoksa 0 yazıyo ve o line ın başına özel bi karakter atıyo ve takrar geldiğinde direk atlıyo ama biraz attım gibi geliyo bana... bu işin aslını bilen varsa anlatsın çatlıycam.... Ve şunu söliim bizim hocaların hiçbiri kesinlikle bunu bilmiyo !

    anca gidersin...
  5. KısayolKısayol reportŞikayet pmÖzel Mesaj
    garga
    garga's avatar
    Kayıt Tarihi: 29/Temmuz/2002
    Erkek
    Evet... Uzun bir aradan sonra olayın aslını öğrendim gelip sizlerle paylaşayım dedim...

    Evet beyler... Compiler "static" kelimesini gördüğü anda processorun registerlerinden biri bu variable için ayırıyo ve eğer "static int a=1" derseniz oraya 1 i atıyo... eğer "static int a" derseniz processorun resigterina direk 0 atıyo ve yaptığınız her değişiklik yine orda tutuluyo...

    Yani yani diğer variablelar gibi tam olarak memoryde yer tutmuyolar özel olaraktan processor registerinde tutuluyo beyfendiler ama sonuçta oda memeory değil mi ? :)

    SAYGILAR..

    anca gidersin...
  6. KısayolKısayol reportŞikayet pmÖzel Mesaj
    kabus
    kabus's avatar
    Kayıt Tarihi: 29/Temmuz/2002
    Erkek
    zaten kendin cevabladin
    cpu yazmaclarinin birer memory oldugunu,
    registerler yani ismindende anlasilacagi gibi kaydediciler
    Belirli hafiza hücreleridir.16 Bit'liktir.Yazmaçlarda,mikroislemci içindeki aritmetiksel,matematiksel islemler ve adresleme olaylari tutulur..asm bilenler bilir

    Biz seninle farkinda olmadan ayri pencerelerden ayni yildizlara bakmaya devam edecegiz.
  7. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Tarikat Şeyhi
    HolyOne
    HolyOne's avatar
    Kayıt Tarihi: 01/Haziran/2002
    Erkek
    güzel yaklaşım, önce static in ne olduuunu açıkliyim,
    1) eğer C++ da bir classi static tanimlarsanız bundan bir tane yaratırsınız ikinci kopyasını yaratamazsınız,yada yarattığınızda birini değiştirirseniz öbüründede aynı değişiklik olacaktır.

    static olarak tanımlanan tek şey integer değildir.
    onlarca MB arraylaride static tanımlayabilirsin.

    Peki bukadar büyük verileri cpunun hangi registeri aliyomus onuda ogren :) CPUların kralinda bile register sayisi sınırlıdır.

    o zaman bir kere de en çok 8-10 static mi tanimliabilion bilgisayarda? dene bakalim static tanimlamada bi sınır warmı ? :)

    Nush ile uslanmayanı etmeli tekdir, Tekdir ile uslanmayanın hakkı kötektir!
Toplam Hit: 3027 Toplam Mesaj: 7