android ndk开发中char和unsigned char问题

官方说明

看看cflags中 fsigned-char的说明:

-fsigned-char — Allows the type char in the native libraries to be signed, like signed char. Each kind of machine has a default for what char should be. It is either like unsigned charby default or like signed char by default. By default on Android NDK char type is unsigned, but char is treated as signed on x86. This is an option imposed by Superpowered SDK authors, so we’ll include this as well.

默认android ndk中char类型是unsigned,在x86上是signed类型。。

ndk中,对于负数来说,char val = -3,printf出的值是253,而不是-3。。差距这么大的值,在项目中会有意外的表现。。

 

不想该代码的话,可以使用下面的设置,进行修改:

LOCAL_CFLAGS := -fsigned-char

出自网站:https://expertise.jetruby.com/android-ndk-using-c-c-native-libraries-to-write-android-apps-21550cdd86a

 

申明

 

 

发布了218 篇原创文章 · 获赞 94 · 访问量 95万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章