2011-09-14 6 views
6

अन्य प्लेटफार्मों के साथ स्थिरता के लिए, मुझे कुछ देशी कोड में signed char का उपयोग करने की आवश्यकता है, जिस पर मैं काम कर रहा हूं। लेकिन एंड्रॉइड एनडीके char पर डिफ़ॉल्ट रूप से unsigned है।क्या एंड्रॉइड एनडीके के साथ -फिग्न-चार् के साथ निर्माण करना सुरक्षित है?

मैं स्पष्ट रूप से signed char प्रकार का उपयोग करने की कोशिश की है, लेकिन यह भी कई चेतावनियाँ भी सृजित differ in signedness जब स्ट्रिंग स्थिरांक/पुस्तकालय कार्यों शामिल कर रहे हैं, इसलिए मैं -fsigned-char के साथ अपने कोड का निर्माण करने के लिए देख रहा हूँ।

अब मैं एंड्रॉइड एआरएम ABI and API के संबंध में समस्याओं का अनुमान लगाने की कोशिश कर रहा हूं, जब -fsigned-char का उपयोग किया जाता है, लेकिन मुझे अभी तक कोई समस्या नहीं मिल रही है।

Procedure Call Standard for the ARM Architecture ABI (AAPCS) में, 7.1.1 अंकगणित प्रकार, और C Library ABI for the ARM Architecture, 5.6 inttypes.h, charunsigned होना कहा जाता है।

क्या आपको पता था कि सी पुस्तकालय (एंड्रॉइड पर उपलब्ध अन्य पुस्तकालयों) का उपयोग करते समय कुछ परेशानी होगी यदि -fsigned-char एंड्रॉइड एनडीके में सक्षम है?

उत्तर

4

मुझे आज भी इस मुद्दे का सामना करना पड़ा है। char को x86 पर signed के रूप में माना जाता है, लेकिन एंड्रॉइड डिवाइस पर चलते समय unsigned में बदल दिया गया है। यह मेरी जेएनआई libs ठीक से काम नहीं करते हैं।

Android.mk में LOCAL_CFLAGS := -fsigned-char सेट करने के बाद, मेरा प्रोग्राम काम करता है! वर्तमान में मुझे कोई दुष्प्रभाव नहीं मिला। धन्यवाद।

संबंधित मुद्दे