Re: [Linux-programlama] 64 bit programlama

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Ömer F. USTA (omerusta@gmail.com)
Date: Wed 29 Nov 2006 - 20:44:45 GMT


sanırım benim bir önceki maille yolladıklarım size ulaşmamış tekrar
aynılarını yolluyorum :
Merhabalar
64 bit sistemler için ve genel olarak 32 bit için pointer işlemleri yaparken
sizeof methodu ile mevcut değişkenin bellek uzunlugunu ogrenip ona göre
işlem yaptıran programlar yazmanız hard coded şekilde belirli bir
değer vermenizden
daha mantıklı olacaktır çünkü işlemci tipinden çok işletim sisteminin
o değişken
türünü bellekte ne kadar yer ayıttığına göre sistem işlemektedir.
(mesela win sistemlerdeki bir double türü değişken 8 byte yer kaplarken
unix sistemlerde bu değer farklı olabilmektedir )
Uzun lafın kısası bellekten yar ayırma işlemleriniz durumunda
#include <stdlib.h>
float *floatpointer;

floatpointer = (float *)malloc(sizeof(float));
şeklinde bir yapı kullanabilirsiniz
(Hatalarım oldu ise hocalarım düzeltirse sevinirim )

On 11/29/06, Fuat Altun <faltun@iso.org.tr> wrote:
> Teşekkürler.
>
> Fakat "taşınabilir kod yazabilmek için
> sizeof() ve kütüphanelerinide tanımlanmış olan veri tiplerine bağlı kalın." Kısmını biraz açarsanız sevinirim. Sizeof'u kodda nasıl kullanıcam ve hangi kütüphanedeki veritipleri?
>
> İyi çalışmalar
>
>
>
>
> -----Original Message-----
> From: linux-programlama-bounces@liste.linux.org.tr [mailto:linux-programlama-bounces@liste.linux.org.tr] On Behalf Of Serkan Kenar
> Sent: Tuesday, November 28, 2006 12:28 PM
> To: linux-programlama@liste.linux.org.tr
> Subject: Re: [Linux-programlama] 64 bit programlama
>
> Fuat Altun yazmış:
> > Merhabalar,
> >
> > 64 bitlik ortamlarda programlama yapıldiginda veri tiplerinin uzunlugu
> > degisiyormu?
>
> Değişir. Aslında veri tiplerinin uzunlukları çok da tahmin edilebilir
> değildir bu nedenle sizeof() operatörünü ve kütüphanelerde gelen veri
> tiplerini kullanmanız gerekir.
>
> Kullandığınız sistemlerde bu tiplerin boyutlarını merak ediyorsanız ufak
> bir program yazarak öğrenebilirsiniz.
>
> int main()
> {
> printf("sizeof(char)=%d\n", sizeof(char));
> printf("sizeof(int)=%d\n", sizeof(int));
> printf("sizeof(long)=%d\n", sizeof(long));
> printf("sizeof(long long)=%d\n", sizeof(long long));
> return 0;
> }
>
> 32-bit bir makinede aldığım sonuçlar:
> sizeof(char)=1
> sizeof(int)=4
> sizeof(long)=4
> sizeof(long long)=8
>
> 64-bit bir makinede aldığım sonuçlar:
> sizeof(char)=1
> sizeof(int)=4
> sizeof(long)=8
> sizeof(long long)=8
>
> Yine de dediğim gibi, bu sonuçlar bağlı çalışma yapmak yanıltıcı ve
> problemlere neden olabilir. Esas olarak taşınabilir kod yazabilmek için
> sizeof() ve kütüphanelerinide tanımlanmış olan veri tiplerine bağlı kalın.
>
> iyi çalışmalar,
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>

-- 
Ömer Fadıl USTA
http://www.bilisimlab.com/

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.