码迷,mamicode.com
首页 > 其他好文 > 详细

Pointer 零散记录

时间:2016-10-11 13:56:52      阅读:161      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!