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 第一个字节的内容

时间: 2024-10-09 17:03:44

Pointer 零散记录的相关文章

C++细节系列(零):零散记录

老规矩:记录细节,等待空余,再进行整理. 1:const,static,const static成员初始化. 1.const成员:只能在构造函数后的初始化列表中初始化 2.static成员:初始化在类外,且不加static修饰. 3.const static成员:类只有唯一一份拷贝,且数值不能改变.因此,可以在类中声明处初始化,也可以像static在类外初始化. 2:拷贝赋值函数  和 拷贝构造函数. 1,拷贝赋值函数. 1)返回值是 左侧类型的引用. 2,拷贝构造函数. 1,通常的主体功能应该

Unity-Animator零散记录4 API

1.public Vector3 angularVelocity { get; } 未测 2.public bool animatePhysics { get; set; } 未测 3.public bool applyRootMotion { get; set; } 是否打开根运动 4.public Avatar avatar { get; set; } [人形动画]人形动画Avatar 5.public Vector3 bodyPosition { get; set; } 未测 6.publ

Unity-Animator零散记录5 StateMachineBehaviour状态机脚本学习

首先这个脚本必须继承自StateMachineBehaviour public class MySMB : StateMachineBehaviour { public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.OnStateEnter(animator, stateInfo, layerIndex); Debug.Log("!!!"

STL学习之零散记录(不断更新中)

我用到什么就写什么,所以不是太注重排版,等写多了以后再整理: 1:vector<int> V,V.pop_back()弹出最后一个元素 2:优先级队列不能设置迭代器,因为没有 3: #include <bitset> //位运算 string str2(str,0,8);//将str字符串数组截取0~7号元素,string自带的功能 bitset<8> aaa(str2);//bitset<n>也是stl里面的,用法是将aaa设置成占八位内存单元(1个字节)

ASP.NET Core学习零散记录

赶着潮流听着歌,学着.net玩着Core 竹子学Core,目前主要看老A(http://www.cnblogs.com/artech/)和tom大叔的博客(http://www.cnblogs.com/TomXu/),当然还有我们博客园的Core中国学习小组啦(http://www.cnblogs.com/dotNETCoreSG/),只是笔记作用,所以很多图片,文字都是来源于他们~ 中间件(middleware): 原文:随着WebHost的Start方法的调用,按照具体需求进行定制的请求处理

jquery零散小结(公司大神不吝赐教,从话语中零散记录)

$(document).ready(function () { $("#chongzhi").click(function () { $(".table_1").find("input:not([disabled]),textarea").val(""); }); }); 这是一个简单的重置功能,其中,find(input,textarea)方法是查找,里面的input,textarea是标签类型.:用在表情后面跟方法,用来限

关于allocator的一些基础用法以及简易的vector实现

首先,关于allocator戳旁边→维基百科-分配器(C++) 这次我只用了其中的一部分API,来实现一个简易的vector容器,这个简易版vector实现了插入.删除.查找等简易功能,由于对右值的理解不足,所以这次并未实现关于右值的API. [MSDN-class allocator_base API] 此次用到的有: allocate - 用于分配.再分配空间 construct - 用于构造对象 destroy - 用于销毁对象(调用其构造函数) 接下来开始,用例子一点点的说明如何使用al

一个关于unity3d的系列文章

写在前面 想来从事unity3d开发已有三年多一些,寻思着该为这个奋斗了这么久的行业做些少许贡献,无赖自身水平局限加上各种拖延症,一直未能实施. 该写什么? 该怎么写? 不知道自己的能力是否能够撑起梦想,最后是否会太监? 也不会做需求分析,自己的文章会否有人问津? 更加不知道文章是否书写正确,不要传递了错误的信息,误人技术,徒留一地鸡毛. 想的多了,做得就少了,越想越无法下笔,但近日开始接手一个陈旧的项目,看着自己无法下手的代码,看着各种解不开的变量关系,才知道,虽然unity3d大大降低了做游

iOS阅读器实践系列(四)阅读视图方案

阅读过程中文章内容可能需要很多屏才能展示完,那么现在的问题是创建多少个视图来渲染内容. 经过考虑,决定用两个视图,利用手势来控制不断来回切换来实现. 首先定义两个私有的实体的view对象: @property (nonatomic, strong) DisplyManagerView *buffer1; @property (nonatomic, strong) DisplyManagerView *buffer2; buffer1与buffer2就是用于渲染内容的两个视图. 其次还要定义一个用