float adresin int e atanması problemi

Başlatan enexs, 21 Eylül 2010, 16:08:23

enexs

float temp;
uint8_t *pint;
pint = &temp;

şeklindeki bir kod da temp adlı float değişkenin adresini pint adlı integer işarerçiye atamak istiyorum ama keil hata veriyor bunun bir yolu varmıdır?
ekşiya nedir? -yolkesen haraç alan dağlarda yaşayan senin benim gib bir insandır işte sen ekşiya bilirmisin? -he birini biliyim adı barandı.

mufitsozen

Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

fatihinanc

adres atanırken iki değişkenin de aynı tür olarak tanımlanma zorunluluğu vardır C de.
kodu şöyle değiştirirseniz problemin ortadan kalkması lazım.

float temp;
float *pint;
pint = &temp;
Kainat dediğimiz kitap, yazıldığı dil ve harfler öğrenilmedikçe anlaşılamaz.  (Galileo Galilei)

mufitsozen

uint8_t * ile cast edin. (onceki mesajda float * yazmisim ozur!)

   float temp;
   uint8_t *pint;
   pint = (uint8_t *) &temp;

calismasi laxim. Yani float * uint8_t * olarak diyoruz
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

enexs

hocam

pint = (uint8_t *) &temp;

düzeltmesiyle beni büyük bir sıkıntıdan kurtardın çok teşekkürler
ekşiya nedir? -yolkesen haraç alan dağlarda yaşayan senin benim gib bir insandır işte sen ekşiya bilirmisin? -he birini biliyim adı barandı.

JKramer

fatihinanc'ın yazdığı şekilde olmadı mı?

enexs

fatihin yaptığı gibi muhakkak olur ama benim amacım farklıydı benim amacım float bir değişkenin adresini float bir pointera atamak değil
eğer bilgisayardan veya seri porttan float bir değişkeni denetleyiciye göndermek isterseniz float değişkenin byte larına ulaşıp byte byte göndermeniz gerekir. bir float değişken standart ta 4 byte lık yer kaplar intiger bir değişken ise 1 byte lık yer kaplar eğer float değişkenin adresini intiger bir pointera atarsanız(benim yularda yptıüım gibi) bu pointerın değerini birere birer artırarak float değişkenin 4 byte ına da ulaşmış olursunuz float değişkenin 4 byte ına da ulaşmanın başka bir yolu varmıdır bilmiyorum ama en kolayı bu
diğer diller c nin pointer işlemine kurban olsun:D
ekşiya nedir? -yolkesen haraç alan dağlarda yaşayan senin benim gib bir insandır işte sen ekşiya bilirmisin? -he birini biliyim adı barandı.