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 第一个字节的内容
时间: 2024-10-09 17:03:44