arm-linux-gcc char类型默认是unsigned char
来源:互联网 发布:java 10 编辑:程序博客网 时间:2024/06/05 12:07
哎,被坑了。
起因是代码移植,完全一样的代码在ipnone上和在android上运行结果大不相同。
其中,有类似这样的代码
static const char table[3] = {3,4,-1};unsigned int index = 一系列运算的结果;int number = table[index];if( number == -1 ){ 其他运算;}
在Android手机(arm cpu)上,怎么也得不到正确结果。
查了一堆资料,才弄明白原因:
table数组是char类型数组,arm-linux-gcc将char认定为是unsigned char类型,那么table[index]的值便不会有-1的情况,而number是int类型(signed int),于是下面的条件判断(number == -1)变永远为假了,不会执行里面的分支。
- arm-linux-gcc char类型默认是unsigned char
- arm-linux-gcc char与signed char和unsigned char
- char类型默认是signed还是unsigned?
- 关于arm-linux-gcc 规定 char 为 unsigned char 问题 的解决办法
- 关于arm-linux-gcc 规定 char 为 unsigned char 问题 的解决办法
- gnu linux 上ARM默认char是不带符号的。微软wince上char又默认是signed。
- char和unsigned char字符类型
- linux 下的unsigned char 和char
- (unsigned char *)
- unsigned char
- unsigned char
- char、signed char、unsigned char
- char & unsigned char & signed char
- signed char & unsigned char
- unsigned char与char
- unsigned char和char
- unsigned char与char
- char 与 unsigned char
- ubuntu下wlan固定ip
- .Net Framework 4 0xC8000222
- this引用类的当前实例
- 裸眼3D技术简介
- css3的animation 动画
- arm-linux-gcc char类型默认是unsigned char
- win7配置directshow
- 使用jni开发音频转码器
- 在android的开发中,判断是否连接网络
- 解决SVN错误:Can’t move ‘.svn/tmp/entries’ to ‘.svn/entries’
- cocos2d-x的消息和数据传递
- iframe实现Ajax文件上传效果
- 杂感
- simics linux 简单安装