2011-09-14 17 views
6

, ben üzerinde çalışıyorum bazı yerel kodda signed char kullanmak gerekir. Ancak Android NDK char türünde varsayılan olarak unsigned şeklindedir. dize sabiti/kütüphane fonksiyonları işin içine girdiğindeAndroid NDK ile -fsigned-char ile oluşturmak güvenli mi? diğer platformlar ile tutarlı olması açısından

açıkça signed char türünü kullanmaya çalıştık ama çok fazla uyarıları üretir differ in signedness, bu yüzden -fsigned-char ile kodumu kurmak için arıyorum.

Artık Android ARM ABI and API ile ilgili sorunları tahmin etmeyi denerken, -fsigned-char kullanıma sunuldu, ama henüz herhangi bir problem bulamıyorum. Procedure Call Standard for the ARM Architecture ABI (AAPCS) olarak

, 7.1.1 Aritmetik türleri ve C Library ABI for the ARM Architecture, 5.6 inttypes.h, charunsigned olduğu söylenir.

C kütüphanesini -fsigned-char Android NDK etkindir (Android'de mevcut diğerleri kütüphaneler) kullanırken bazı sorunlar olacak mı olmadığını biliyor muydunuz?

cevap

4

Ben de bu meseleyi bu gece karşılaştım. char x86 üzerinde signed olarak tedavi ancak Android cihazı çalıştırıldığında unsigned olarak değiştirilir. Bu JNI lib'leri düzgün çalışmıyor. Android.mk içinde LOCAL_CFLAGS := -fsigned-char ayarladıktan sonra

, benim program çalışıyor! Şu anda hiçbir yan etkisi bulunamadı. Teşekkürler.