unsigned char类型指针与int型数据的转换
来源:互联网 发布:久米田康治 知乎 编辑:程序博客网 时间:2024/05/17 08:58
unsigned char类型指针与int型数据的转换 2010-12-31 17:58:46
标签:style嵌入式
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lancelot.blog.51cto.com/393579/470035
前两天写了个程序,在PC上单元测试一切正常,但是加载到嵌入式系统中运行,执行的结果总是不正确,纠察了很久,发现问题出现在如下代码:
unsignedint type;
unsignedchar *pType;
type = 2;
pType = (unsignedchar *)&type;
在PC机上,上述代码运行后,type=2, *pType=2,而在嵌入式系统中运行,得到的值却是type=2, *pType=0。
经过查阅资料才发现,原来这次使用的嵌入式系统数据存储是大端结构,低地址存放的是高位数据,上述数据的存储形式如下:
指针pType指向的是type变量的第一个字节所在的地址,实际上该字节保存的数据是type变量的最高字节的值。
在PC机上,数据存储是小端模式,低地址存放的是低位数据,上述数据的存储形式如下:
指针pType指向的数据正好就是type变量最低位字节的数据。
因此,编写嵌入式系统的代码,如果想要考虑到通用性,则应当尽量避免使用上述的指针用法来访问int类型数据的每个字节的值,而是应该使用int类型数据进行左移、右移等操作得到相应字节的值,这样不管是大端还是小端存储,都不会有问题。
本文出自 “rainman” 博客,请务必保留此出处http://lancelot.blog.51cto.com/393579/470035
- unsigned char类型指针与int型数据的转换
- C语言unsigned char、char与int之间的转换
- int类型与char,string类型数据的相互转换
- int类型与char类型的转换
- int类型与char类型的转换
- char 和 unsigned 与int 之间的转换
- char 和 unsigned 与int 之间的转换
- CString类型与unsigned char类型的相互转换
- 补码和数的转换(unsigned/char|int)
- unsigned char* 类型数据转换字符串 string
- int 与 unsigned int、unsigned char 的计算
- 从unsigned char * 转换成int,long... 类型
- C语言中类型转换:char转unsigned int
- C语言char强制类型转换unsigned int时的问题
- java int类型与char类型转换
- 由int与unsigned int 相加看c++类型转换
- 由int与unsigned int 相加看c++类型转换
- 由int与unsigned int 相加看c++类型转换
- 湖南省第六届 中信软件教育杯 大学生程序设计大赛试题 第二题 弟弟的作业
- 未知高度的图片垂直居中(转自:http://stylechen.com/img-middle.html)
- 最简单的拦截器写法 struts2
- 湖南省第六届 中信软件教育杯 大学生程序设计大赛试题 第一题 汽水瓶
- JMS详解
- unsigned char类型指针与int型数据的转换
- 留学申请相关资料网站
- 每天一小步,人生一大步——8086/8088基本指令
- POJ 百练 2965: 玛雅历
- poj 2112(多重匹配题目)
- JAVA_将JFreeChart图片导出到Excel
- ARM及Thumb指令条件执行
- int main(int argc,char* argv[])详解
- linux配置文件参考