iki farklı yapıdaki değişkene aynı adres atama yapılab

Başlatan rree, 04 Nisan 2009, 20:19:27

rree

iki farklı yapıdaki değişkene aynı adres atama yapılabilirmi

Dim S2TData as longword
Dim S2TDataD as byte[4]

                  Yukarıdaki değişkenleri aynı adrese tanımlanabilirmi?
Amacım S2TData atanan sayıyı boyut S2TDataD değşkeninde for next döngüsü içinde dizi değişkeni ile işlem yapmak

S2TData=87654321
For i=1 to 4

K=S2TDataD
Next i

Adresleri aynı olsa S2TData  ile matematiksel işlem S2TDataD ile dizi
işlemleri yapılabilirdi!

rree

Arkadaşlar mikrobasic helpinde buldum  
Dim S2TData as longword  absolute $20
Dim S2TDataD as byte[4]  absolute $20
Dim DegBGecici As Word

Proton Pasic de bulamadım?

ete

Ortada bir teorik hata var. Değişkenlerden birisi byte cinsiden tek değişken diğeri ise yine byte cinsinden dizi değişkeni. Önce bu değişkenlerin nasıl adres ladıkların abakalım. Bu sistem bütün dillerde aynıdır.

Değişken Tek diyelimki $20 adresini aldı
Değişken Dizi(4) diyelimki yine $20 adresini aldı ama burada bir fark var. O da şöyle;
Değişken Dizi(0) $20 de
Değişken Dizi(1) $21 de
Değişken Dizi(2) $22 de
Değişken Dizi(3) $23 de yer alacaktır.

İkisine de aynı adresi verirsen yalnızca tek değişkenle dizi değişkeninin sıfır no lu dizisi aynı adresi almış olacaktır.
Bu amacına uygunmudur bilemiyorum. Ancak değişken adreslemenin mantığını bilesin diye açıklayım istedim.
Pic Basic Pro da da Micro basicde olduğu gibi değişkene istediğin bir adresi verebilirsin. Bu iş benzer şekilde Protonda da olması gerekir denemediğim için emin değilim.
Birde Alias denilen değişken atama işlemi varki oda başka bir değikeni bir diğer değişkene eşitlemek oluyor. Yani
Dim Deger  as byte
Dim Ikinci as Deger
seklinde iki değişkeni birbirine yani aynı adrese eşitleyebilirsin.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

rree

Seri haberleşme algoritma düşüncemde bu tür bir akış sonucu daha az ram bellek kullanabileceğim ortaya çıktı. Dediğiniz gibi 2 farklı yapı veriyi aynı adrese yapılandırma yanlış.32 bit veriyi Dword değişkenine atıp
dizi değişkeninde byte byte sırayla bir for next döngüsünde gönderme
işlemi yapabilirrim. Amaç seri haberleşmede kesme kullanmadan 2 pic musaait olduklarında birbirleri ile haberleşsin.