首页 > 其他 > 详细

Pointer 零散记录

时间:2016-10-11 13:53:59      阅读:227      评论:0      收藏:0      [点我收藏+]

2016.10.11

void MB_float_u16(float f,uint16_t *a,uint16_t *b)
{
  uint8_t *fp;     ①
  uint8_t *ap;     ②
  ap=(uint8_t*)a   ③
  fp=(uint8_t*)&f; ④
  ap[1]=fp[3];      ⑤
  ap[0]=fp[2];      ⑥
  ap=(uint8_t*)b;   ⑦
  ap[1]=fp[1];      ⑧
  ap[0]=fp[0];      ⑨
}
uint8_t *fp = uint8_t fp[]   两者等价  数组没有声明元素个数 则根据数组的使用自动匹配元素个数

 

32位系统中指针变量都占4个字节 只有在提取数据的时候才按照类型来分配。

fp=(uint8_t*)&f; 这里只是指向相同的地址 和数据

 

1、2:创建两个指针变量 fp ap

3: ap指向a  因为ap是uint8_t 类型的 所以强制转换 才能赋值

4:相同道理

5:实参 a地址的内容 a[1]等于浮点数 f (占四字节)最后一个字节的内容

6:实参 a地址的内容 a[0]等于浮点数 f 第三个字节的内容

7:将ap指向实参b

8:实参b地址的内容 b[1]等于浮点数 f 第二个字节的内容

9:实参b地址的内容 b[0]等于浮点数 f 第一个字节的内容

Pointer 零散记录

原文:http://www.cnblogs.com/einstein-2014731/p/5948949.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!