问题:
char a = -1;
int b = a;
ALOGI(“a = %d b = %d”, a, b);
打印结果
a = 255 b = 255
这是个没有注意过的问题,参考网址上面描述:
char类型没有明确定义是signed还是unsigned,pc上是signed,arm上很不巧,是unsigned,所以导致前面打印的问题

可以使用signed char 来代替char,这样就会打印正常。
signed char a = -1;
int b = a;
ALOGI(“a = %d b = %d”, a, b);
参考
https://blog.youkuaiyun.com/sinat_20265495/article/details/51733015
char类型打印问题及解决办法
博客指出代码中char类型变量打印出现问题,原因是char类型未明确定义是signed还是unsigned,PC上为signed,arm上为unsigned。可使用signed char代替char解决打印问题,还给出了参考网址。
3442

被折叠的 条评论
为什么被折叠?



