Pointer 零散记录

Posted 沧海一粟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pointer 零散记录相关的知识,希望对你有一定的参考价值。

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 零散记录的主要内容,如果未能解决你的问题,请参考以下文章

零散记录

R语言实战——零散基础操作介绍

Python零散知识点记录

记录零散的知识点

CSP核心代码片段记录

文件打包学习