Selamün Aleyküm Arkadaşlar;
Android NDK -> platforms -> android-<sürüm> -> arch-arm -> usr -> include bu dizin içerisinde bulunan jni.h başlık dosyası içerisinde Java için tür tanımlamalarını yapmışlar ve dikkatimi çeken nokta şu oldu:
typedef signed char jbyte; /* signed 8 bits */
Burada 'byte 'türünü 'signed char' olarak tanımlamış, lakin benim bildiğim 'byte' 0 ila 255 arası, yani toplamda 256 karakterden birini tutabilir ve bu da 'unsigned char''a denk geliyor. jni.h başlık doyasında niçin bu şekilde tanımlanmış olabilir? Bu şekilde tanımlanması yanlış değil mi? Çünkü bu şekilde -255 ila 255 arası bir değer tutar olmuyor mu?
Düzeltme: 'signed char' -128 ila 127 arası bir değer tutuyormuş. Peki bu nasıl oluyor? Sonuçta 'unsigned char' 0 ila 255 arası değer tutuyor. Ama 'signed char' ile 'jbyte' tanımlayarak niçin -'li değerler tutulmak istenmiş ve niçin 127'e kadar değer tutuluyor?
Teşekkürler!
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]
Permalink
Reply