Hafızada henüz yeni kurulmuş ve herhangi bir ilkleme yapılmamış yerel bir sınıfın üyelerine işaretçiler vasıtasıyla tam kontrollü bir şekilde erişmek mümkün müdür?
Teşekkürler...
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Thread overview | ||||||
---|---|---|---|---|---|---|
|
September 20, 2017 Sınıf Üyelerine İşaretçilerle Erişmek | ||||
---|---|---|---|---|
| ||||
Hafızada henüz yeni kurulmuş ve herhangi bir ilkleme yapılmamış yerel bir sınıfın üyelerine işaretçiler vasıtasıyla tam kontrollü bir şekilde erişmek mümkün müdür? Teşekkürler... -- |
September 20, 2017 Sınıf Üyelerine İşaretçilerle Erişmek | ||||
---|---|---|---|---|
| ||||
Posted in reply to Salih Dinçer | Öncelikle, ilkleme yapılmaması D'de çaba gerektiriyor çünkü değişkenler (üyeler dahil) normalde ilkleniyorlar. Tabii istersek '=void' ile ilklenmelerini önleyebiliyor. Ayrıca normalde bir de kurucu işlev işletiliyor ama onun da önüne geçmek mümkün. Ama konunun özünde ilkleme yok galiba... Bildiğin gibi, normal olarak aşağıdaki gibi oluşturulan bir nesnenin değişkeni (aşağıdaki 'foo') aslında perde arkasında bir göstergeden başka bir şey değil. Üyelere gösterge ile erişmenin iki yolu var:
Ali -- |
September 21, 2017 Sınıf Üyelerine İşaretçilerle Erişmek | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli (acehreli) | Burada foo nun tuttuğu şey tam olarak kurulan objenin başlangıç adresi mi? double d ve int i ye array'e erişir mantığında mı erişiliyor yani bu konuyu merak ediyordum bayadır. -- |
September 21, 2017 Sınıf Üyelerine İşaretçilerle Erişmek | ||||
---|---|---|---|---|
| ||||
Posted in reply to huseyin | Evet, perde arkasında foo aslında bir adres değeri. Ama üyelere dizi indeksi mantığıyla değil, başlangıç adresinden kaç bayt uzakta mantığı ile erişiliyor. Sonuçta, bizim 'foo.i' diye yazdığımız kod bir anlamda aşağıdaki kodun eşdeğeri gibi işletiliyor:
Yani, "nesnenin başlangıç adresine i'nin uzaklığını ekle ve orayı int gibi kullan". Ama mikro işlemci bu konuda yarar sağlıyor ve örneğin aslında her üye erişimi için toplama işlemi gerçekleşmiyor. (Aslında gerçekleşiyor ama çok daha hızlıca mikro işlemcinin kendisi tarafından hallediliyor.) Ali -- |