使用Android NDK使用-fsigned-char构建是否安全?

Yan*_*aud 8 c embedded android arm android-ndk

为了与其他平台保持一致,我需要使用signed char我正在处理的一些本机代码.但默认情况下Android NDK char类型是unsigned.

我曾尝试显式使用signed char类型但是differ in signedness当涉及到字符串常量/库函数时它会生成太多警告,所以我希望用它来构建我的代码-fsigned-char.

我现在正在尝试使用Android ARM ABI和API时遇到问题-fsigned-char,但我还没有发现任何问题.

ARM体系结构ABI(AAPCS)的过程调用标准中,7.1.1算术类型和ARM体系结构的C库ABI,5.6 inttypes.h,char据说是unsigned.

您是否知道-fsigned-char在Android NDK中启用C库(Android上可用的其他库)时是否会出现问题?

pen*_*001 3

我今晚也遇到这个问题了。char与 x86 上的处理方式相同,但在 Android 设备上运行时signed则更改为。unsigned这使得我的 JNI 库无法正常工作。

在Android.mk中设置后LOCAL_CFLAGS := -fsigned-char,我的程序可以运行了!目前我没有发现副作用。谢谢。