Evet sorum başlıkta olduğu gibi void* ı ubyte[] olarak nasıl cast yapabiliriz? :)
Zekeriya
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Thread overview | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
March 02, 2013 void* ı ubyte[] olarak cast yapmak | ||||
---|---|---|---|---|
| ||||
Evet sorum başlıkta olduğu gibi void* ı ubyte[] olarak nasıl cast yapabiliriz? :) Zekeriya -- |
March 02, 2013 void* ı ubyte[] olarak cast yapmak | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | 5 dk. -- |
March 02, 2013 void* ı ubyte[] olarak cast yapmak | ||||
---|---|---|---|---|
| ||||
Posted in reply to Salih Dinçer | Hocam cast(ubyte[]) (cast(void*) &print)[0..4] bu şekilde hallettim. Ama bu castlediğim veriyi kullanamadım. İşime yaramadı yani :) Zekeriya -- |
March 02, 2013 void* ı ubyte[] olarak cast yapmak | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Bilgisayar başında uyuya kalmışım. Bugün epey bir pedal çevirdim ve soğukta akşam eve döndüm. Vücut 5 dk.'yı kaldıramadı demek ki...:) Aşağıdaki gibi bir yapı kullanırsan sanırım her şey daha açık olur?
-- |
March 02, 2013 void* ı ubyte[] olarak cast yapmak | ||||
---|---|---|---|---|
| ||||
Posted in reply to Salih Dinçer | Alıntı: >Bilgisayar başında uyuya kalmışım. Bugün epey bir pedal çevirdim ve soğukta akşam eve döndüm. Vücut 5 dk.'yı kaldıramadı demek ki... Aman hocam kendinize dikkat edin. Siz bize lazımsınız :) ama tam olarak yapmak istediğim bu değildi. Bir işlevin adresini aldım onu byte dizisine çevirip daha sonradan byte dizisinden o adresi alıp işlevi çağırmak istiyorum :) Zekeriya -- |
March 02, 2013 void* ı ubyte[] olarak cast yapmak | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Hocam sanırım bu ubyte dizisi olayını verileri işlerken kullanmamalıyız :) Nedenine gelirsek ek işlemler yapmadan kullanamayız. Ek işlemler de gereksiz yavaşlamaya neden olacak. Ama kodları bytecode'a çevirip okuyup işlem yapabiliriz. Zekeriya -- |
March 02, 2013 void* ı ubyte[] olarak cast yapmak | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Ama peki şimdi biz verileri nasıl saklayacağız? Türden bağımsız olmalı ve zaten her işlev kendi türünü biliyor cast veya farklı bir işlemle veriye türüne göre davranabilir. Bunları nasıl depolayacağız :) Zekeriya -- |
March 03, 2013 void* ı ubyte[] olarak cast yapmak | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Yapmak istediğin bellekteki bazı adresleri bir dizi içinde tutmak ise en doğru veri türü ''size_t*[] ptrs;'' olmalı. Neden ubyte'a çeviriyorsun? Hadi bir nedenden çevirmen gerekiyor, sonra bu adresleri tekrar elde etmeye (void*) çalıştığında 256'den küçük değerler ile karşılacaksın! Böyle bir şeye ihtiyaç duyunca, aklıma sadece dizinin adreslerini alıp onların sahip olduğu elemanlara dilediğin şekilde ulaşmak isteyebileceğin geldi. Tabi bunu yapabilmek için veri türü ve uzunluğunu bilmememiz gerekli. O yüzden böyle bir yapı kurdum... Ayrıca bu yapıyla herhangi bir türü kullanabileceğimizi gösterdim. Bu sadece bir gerçekleme ve aynısını kullanman gerekmez. Dilersen bazı işlevlerini görmezden gelebilirsin. Hatta slice()'ı oradan alıp başka bir yapı içinde de çalıştırabilirsin. Tabi o zaman türü bildiğimizi (örn. ubyte) varsayıyorum. -- |
March 03, 2013 void* ı ubyte[] olarak cast yapmak | ||||
---|---|---|---|---|
| ||||
Posted in reply to Salih Dinçer | Alıntı: >Neden ubyte'a çeviriyorsun? Verileri ubyte[] olarak sakladım. Daha sonradan cast yaparak veriye erişiyorum. Bu veriler int, string, void* gibi bir çok farklı veri türü olabilir. Sanırım bir süre daha ara vermem gerekecek bu yapıya ya da yavaş ama eskisinden hızlı olacak şekilde yapmaya devam etmek. Zekeriya -- |
March 03, 2013 void* ı ubyte[] olarak cast yapmak | ||||
---|---|---|---|---|
| ||||
Posted in reply to Talha Zekeriya Durmuş (zekeriyadurmus) | Tamam ama ne verisi? Adres verisi ise kullandığımız işlemciler 8 bit olmadıkları için ubyte dizisi işimizi kesinlik görmez... Bence senin türden bağımsız güzel bir veri yığınına ihtiyacın var. Rahatlatacak bu seni, şu BitStack 2.0'ı bitireyim bari...:) -- |